{
  "version": 3,
  "sources": ["../../../../../shared/node_modules/@intrnl/esbuild-plugin-env/src/inject.js", "../../../node_modules/jquery/dist/jquery.js", "../../../node_modules/i18n-js/app/assets/javascripts/i18n.js", "../../../node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js", "../../../node_modules/accounting/accounting.js", "../../../node_modules/air-datepicker/src/js/datepicker.js", "../../../node_modules/air-datepicker/src/js/body.js", "../../../node_modules/air-datepicker/src/js/navigation.js", "../../../node_modules/air-datepicker/src/js/timepicker.js", "../../../node_modules/axe-core/axe.js", "../../../node_modules/unfetch/src/index.mjs", "../../../node_modules/isomorphic-unfetch/browser.js", "../../../node_modules/velocity-animate/velocity.js", "../../../node_modules/magnific-popup/dist/jquery.magnific-popup.js", "../../../node_modules/velocity-ui-pack/velocity.ui.js", "../../../node_modules/flightjs/build/flight.js", "../../../node_modules/turbolinks/dist/turbolinks.js", "../../javascript/cms.js", "../../javascript/lib/commons/index.js", "../../javascript/lib/commons/modules/jquery.js", "../../javascript/lib/commons/modules/i18n.js", "../../javascript/lib/commons/modules/module-search.js", "../../../node_modules/devbridge-autocomplete/dist/jquery.autocomplete.esm.js", "../../javascript/lib/shared/index.js", "../../javascript/lib/shared/modules/autocomplete_settings.js", "../../javascript/lib/shared/modules/URLParams.js", "../../javascript/lib/shared/modules/d3-locale.js", "../../javascript/lib/shared/modules/createScaleColors.js", "../../../node_modules/d3/src/index.js", "../../../node_modules/d3-brush/src/index.js", "../../../node_modules/d3-brush/src/brush.js", "../../../node_modules/d3-dispatch/src/index.js", "../../../node_modules/d3-dispatch/src/dispatch.js", "../../../node_modules/d3-selection/src/index.js", "../../../node_modules/d3-selection/src/creator.js", "../../../node_modules/d3-selection/src/namespace.js", "../../../node_modules/d3-selection/src/namespaces.js", "../../../node_modules/d3-selection/src/selection/index.js", "../../../node_modules/d3-selection/src/selection/select.js", "../../../node_modules/d3-selection/src/selector.js", "../../../node_modules/d3-selection/src/selection/selectAll.js", "../../../node_modules/d3-selection/src/array.js", "../../../node_modules/d3-selection/src/selectorAll.js", "../../../node_modules/d3-selection/src/selection/selectChild.js", "../../../node_modules/d3-selection/src/matcher.js", "../../../node_modules/d3-selection/src/selection/selectChildren.js", "../../../node_modules/d3-selection/src/selection/filter.js", "../../../node_modules/d3-selection/src/selection/data.js", "../../../node_modules/d3-selection/src/selection/enter.js", "../../../node_modules/d3-selection/src/selection/sparse.js", "../../../node_modules/d3-selection/src/constant.js", "../../../node_modules/d3-selection/src/selection/exit.js", "../../../node_modules/d3-selection/src/selection/join.js", "../../../node_modules/d3-selection/src/selection/merge.js", "../../../node_modules/d3-selection/src/selection/order.js", "../../../node_modules/d3-selection/src/selection/sort.js", "../../../node_modules/d3-selection/src/selection/call.js", "../../../node_modules/d3-selection/src/selection/nodes.js", "../../../node_modules/d3-selection/src/selection/node.js", "../../../node_modules/d3-selection/src/selection/size.js", "../../../node_modules/d3-selection/src/selection/empty.js", "../../../node_modules/d3-selection/src/selection/each.js", "../../../node_modules/d3-selection/src/selection/attr.js", "../../../node_modules/d3-selection/src/selection/style.js", "../../../node_modules/d3-selection/src/window.js", "../../../node_modules/d3-selection/src/selection/property.js", "../../../node_modules/d3-selection/src/selection/classed.js", "../../../node_modules/d3-selection/src/selection/text.js", "../../../node_modules/d3-selection/src/selection/html.js", "../../../node_modules/d3-selection/src/selection/raise.js", "../../../node_modules/d3-selection/src/selection/lower.js", "../../../node_modules/d3-selection/src/selection/append.js", "../../../node_modules/d3-selection/src/selection/insert.js", "../../../node_modules/d3-selection/src/selection/remove.js", "../../../node_modules/d3-selection/src/selection/clone.js", "../../../node_modules/d3-selection/src/selection/datum.js", "../../../node_modules/d3-selection/src/selection/on.js", "../../../node_modules/d3-selection/src/selection/dispatch.js", "../../../node_modules/d3-selection/src/selection/iterator.js", "../../../node_modules/d3-interpolate/src/index.js", "../../../node_modules/d3-color/src/index.js", "../../../node_modules/d3-color/src/color.js", "../../../node_modules/d3-color/src/define.js", "../../../node_modules/d3-interpolate/src/rgb.js", "../../../node_modules/d3-interpolate/src/basis.js", "../../../node_modules/d3-interpolate/src/basisClosed.js", "../../../node_modules/d3-interpolate/src/color.js", "../../../node_modules/d3-interpolate/src/constant.js", "../../../node_modules/d3-interpolate/src/number.js", "../../../node_modules/d3-interpolate/src/string.js", "../../../node_modules/d3-interpolate/src/transform/index.js", "../../../node_modules/d3-interpolate/src/transform/parse.js", "../../../node_modules/d3-interpolate/src/transform/decompose.js", "../../../node_modules/d3-transition/src/index.js", "../../../node_modules/d3-transition/src/selection/index.js", "../../../node_modules/d3-transition/src/selection/interrupt.js", "../../../node_modules/d3-transition/src/interrupt.js", "../../../node_modules/d3-transition/src/transition/schedule.js", "../../../node_modules/d3-timer/src/index.js", "../../../node_modules/d3-timer/src/timer.js", "../../../node_modules/d3-timer/src/timeout.js", "../../../node_modules/d3-transition/src/selection/transition.js", "../../../node_modules/d3-transition/src/transition/index.js", "../../../node_modules/d3-transition/src/transition/attr.js", "../../../node_modules/d3-transition/src/transition/tween.js", "../../../node_modules/d3-transition/src/transition/interpolate.js", "../../../node_modules/d3-transition/src/transition/attrTween.js", "../../../node_modules/d3-transition/src/transition/delay.js", "../../../node_modules/d3-transition/src/transition/duration.js", "../../../node_modules/d3-transition/src/transition/ease.js", "../../../node_modules/d3-transition/src/transition/easeVarying.js", "../../../node_modules/d3-transition/src/transition/filter.js", "../../../node_modules/d3-transition/src/transition/merge.js", "../../../node_modules/d3-transition/src/transition/on.js", "../../../node_modules/d3-transition/src/transition/remove.js", "../../../node_modules/d3-transition/src/transition/select.js", "../../../node_modules/d3-transition/src/transition/selectAll.js", "../../../node_modules/d3-transition/src/transition/selection.js", "../../../node_modules/d3-transition/src/transition/style.js", "../../../node_modules/d3-transition/src/transition/styleTween.js", "../../../node_modules/d3-transition/src/transition/text.js", "../../../node_modules/d3-transition/src/transition/textTween.js", "../../../node_modules/d3-transition/src/transition/transition.js", "../../../node_modules/d3-transition/src/transition/end.js", "../../../node_modules/d3-ease/src/index.js", "../../../node_modules/d3-ease/src/cubic.js", "../../../node_modules/d3-brush/src/constant.js", "../../../node_modules/d3-brush/src/event.js", "../../../node_modules/d3-brush/src/noevent.js", "../../../node_modules/d3-zoom/src/index.js", "../../../node_modules/d3-zoom/src/zoom.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/index.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/creator.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/namespace.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/namespaces.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/index.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/select.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selector.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/selectAll.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/array.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selectorAll.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/selectChild.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/matcher.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/selectChildren.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/filter.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/data.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/enter.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/sparse.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/constant.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/exit.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/join.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/merge.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/order.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/sort.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/call.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/nodes.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/node.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/size.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/empty.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/each.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/attr.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/style.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/window.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/property.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/classed.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/text.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/html.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/raise.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/lower.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/append.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/insert.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/remove.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/clone.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/datum.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/on.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/dispatch.js", "../../../node_modules/d3-zoom/node_modules/d3-selection/src/selection/iterator.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/index.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/selection/index.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/selection/interrupt.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/interrupt.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/schedule.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/node_modules/d3-dispatch/src/index.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/node_modules/d3-dispatch/src/dispatch.js", "../../../node_modules/d3-zoom/node_modules/d3-timer/src/index.js", "../../../node_modules/d3-zoom/node_modules/d3-timer/src/timer.js", "../../../node_modules/d3-zoom/node_modules/d3-timer/src/timeout.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/selection/transition.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/index.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/attr.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/node_modules/d3-interpolate/src/index.js", "../../../node_modules/d3-zoom/node_modules/d3-color/src/index.js", "../../../node_modules/d3-zoom/node_modules/d3-color/src/color.js", "../../../node_modules/d3-zoom/node_modules/d3-color/src/define.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/node_modules/d3-interpolate/src/rgb.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/node_modules/d3-interpolate/src/basis.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/node_modules/d3-interpolate/src/basisClosed.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/node_modules/d3-interpolate/src/color.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/node_modules/d3-interpolate/src/constant.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/node_modules/d3-interpolate/src/number.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/node_modules/d3-interpolate/src/string.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/node_modules/d3-interpolate/src/transform/index.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/node_modules/d3-interpolate/src/transform/parse.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/node_modules/d3-interpolate/src/transform/decompose.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/tween.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/interpolate.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/attrTween.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/delay.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/duration.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/ease.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/easeVarying.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/filter.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/merge.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/on.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/remove.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/select.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/selectAll.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/selection.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/style.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/styleTween.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/text.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/textTween.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/transition.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/transition/end.js", "../../../node_modules/d3-zoom/node_modules/d3-ease/src/index.js", "../../../node_modules/d3-zoom/node_modules/d3-ease/src/cubic.js", "../../../node_modules/d3-zoom/node_modules/d3-transition/src/active.js", "../../../node_modules/d3-zoom/src/constant.js", "../../../node_modules/d3-zoom/src/event.js", "../../../node_modules/d3-zoom/src/transform.js", "../../../node_modules/d3-zoom/src/noevent.js", "../../javascript/lib/shared/modules/slugString.js", "../../javascript/lib/shared/modules/accounting_settings.js", "../../javascript/lib/shared/modules/air-datepicker.js", "../../../node_modules/air-datepicker/src/js/air-datepicker.js", "../../javascript/lib/shared/modules/read-more.js", "../../javascript/lib/shared/modules/horizontal-carousel.js", "../../javascript/lib/shared/modules/image-lightbox.js", "../../javascript/lib/shared/modules/range-slider.js", "../../javascript/lib/shared/modules/middleware.js", "../../javascript/lib/vue/filters/index.js", "../../javascript/lib/shared/modules/debounce.js", "../../javascript/lib/shared/modules/accessibility.js", "../../javascript/lib/shared/modules/groupBy.js", "../../javascript/lib/shared/modules/d3-format-numbers.js", "../../javascript/lib/shared/modules/appsignal.js", "../../../node_modules/@appsignal/javascript/node_modules/tslib/tslib.es6.mjs", "../../../node_modules/@appsignal/core/src/index.ts", "../../../node_modules/@appsignal/core/node_modules/tslib/tslib.es6.mjs", "../../../node_modules/@appsignal/core/src/utils/functional.ts", "../../../node_modules/@appsignal/core/src/utils/hashmap.ts", "../../../node_modules/@appsignal/core/src/utils/error.ts", "../../../node_modules/@appsignal/core/src/utils/url.ts", "../../../node_modules/@appsignal/core/src/utils/async.ts", "../../../node_modules/@appsignal/core/src/utils/environment.ts", "../../../node_modules/@appsignal/core/src/utils/push-api.ts", "../../../node_modules/@appsignal/core/src/serializable.ts", "../../../node_modules/@appsignal/javascript/src/version.ts", "../../../node_modules/@appsignal/javascript/src/environment.ts", "../../../node_modules/@appsignal/javascript/src/transports/xdomain.ts", "../../../node_modules/@appsignal/javascript/src/transports/xhr.ts", "../../../node_modules/@appsignal/javascript/src/transports/fetch.ts", "../../../node_modules/@appsignal/javascript/src/transports/node.ts", "../../../node_modules/@appsignal/javascript/src/api.ts", "../../../node_modules/@appsignal/javascript/src/span.ts", "../../../node_modules/@appsignal/javascript/src/queue.ts", "../../../node_modules/@appsignal/javascript/src/dispatcher.ts", "../../../node_modules/@appsignal/javascript/src/index.ts", "../../../node_modules/@appsignal/plugin-window-events/src/index.ts", "../../javascript/lib/shared/modules/wordwrap.js", "../../javascript/lib/shared/modules/tspans.js", "../../javascript/lib/shared/modules/safe-division.js", "../../javascript/lib/commons/modules/module-sessions.js", "../../javascript/lib/commons/modules/module-site_header.js", "../../javascript/lib/commons/modules/magnific-popup.js", "../../javascript/lib/events/index.js", "../../javascript/lib/commons/modules/globals.js", "../../../node_modules/tipsy-1a/src/javascripts/jquery.tipsy.js", "../../javascript/lib/commons/modules/tabs.js", "../../javascript/lib/commons/modules/velocity_settings.js", "../../javascript/lib/commons/modules/shareContent.js", "../../javascript/lib/commons/modules/separate-tabs.js", "../../javascript/lib/commons/modules/check-start-turbolinks.js", "../../javascript/lib/commons/modules/iframe_handler.js", "../../javascript/lib/i18n/index.js", "../../javascript/lib/i18n/modules/translations.js", "../../javascript/gobierto_cms/index.js"],
  "sourcesContent": ["export const process = {env: {}};\n", "/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t//   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] =  function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA     || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t//   but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n *  selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n *  selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t//  - Node\n\t//    - Node.ELEMENT_NODE\n\t//    - Node.DOCUMENT_NODE\n\t//  - Object\n\t//    - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t//   1. No key was specified\n\t\t//   2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t//   1. The entire cache object\n\t\t//   2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t//   1. An object of properties\n\t\t//   2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event )  dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase()  !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t//   .css('filter') (IE 9 only, #12537)\n\t//   .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t *    - BEFORE asking for a transport\n\t *    - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\"  ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t//    documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n", "// I18n.js\n// =======\n//\n// This small library provides the Rails I18n API on the Javascript.\n// You don't actually have to use Rails (or even Ruby) to use I18n.js.\n// Just make sure you export all translations in an object like this:\n//\n//     I18n.translations.en = {\n//       hello: \"Hello World\"\n//     };\n//\n// See tests for specific formatting like numbers and dates.\n//\n\n// Using UMD pattern from\n// https://github.com/umdjs/umd#regular-module\n// `returnExports.js` version\n;(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module.\n    define(\"i18n\", function(){ return factory(root);});\n  } else if (typeof module === 'object' && module.exports) {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory(root);\n  } else {\n    // Browser globals (root is window)\n    root.I18n = factory(root);\n  }\n}(this, function(global) {\n  \"use strict\";\n\n  // Use previously defined object if exists in current scope\n  var I18n = global && global.I18n || {};\n\n  // Just cache the Array#slice function.\n  var slice = Array.prototype.slice;\n\n  // Apply number padding.\n  var padding = function(number) {\n    return (\"0\" + number.toString()).substr(-2);\n  };\n\n  // Improved toFixed number rounding function with support for unprecise floating points\n  // JavaScript's standard toFixed function does not round certain numbers correctly (for example 0.105 with precision 2).\n  var toFixed = function(number, precision) {\n    return decimalAdjust('round', number, -precision).toFixed(precision);\n  };\n\n  // Is a given variable an object?\n  // Borrowed from Underscore.js\n  var isObject = function(obj) {\n    var type = typeof obj;\n    return type === 'function' || type === 'object'\n  };\n\n  var isFunction = function(func) {\n    var type = typeof func;\n    return type === 'function'\n  };\n\n  // Check if value is different than undefined and null;\n  var isSet = function(value) {\n    return typeof(value) !== 'undefined' && value !== null;\n  };\n\n  // Is a given value an array?\n  // Borrowed from Underscore.js\n  var isArray = function(val) {\n    if (Array.isArray) {\n      return Array.isArray(val);\n    }\n    return Object.prototype.toString.call(val) === '[object Array]';\n  };\n\n  var isString = function(val) {\n    return typeof val === 'string' || Object.prototype.toString.call(val) === '[object String]';\n  };\n\n  var isNumber = function(val) {\n    return typeof val === 'number' || Object.prototype.toString.call(val) === '[object Number]';\n  };\n\n  var isBoolean = function(val) {\n    return val === true || val === false;\n  };\n\n  var isNull = function(val) {\n    return val === null;\n  };\n\n  var decimalAdjust = function(type, value, exp) {\n    // If the exp is undefined or zero...\n    if (typeof exp === 'undefined' || +exp === 0) {\n      return Math[type](value);\n    }\n    value = +value;\n    exp = +exp;\n    // If the value is not a number or the exp is not an integer...\n    if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {\n      return NaN;\n    }\n    // Shift\n    value = value.toString().split('e');\n    value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));\n    // Shift back\n    value = value.toString().split('e');\n    return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));\n  };\n\n  var lazyEvaluate = function(message, scope) {\n    if (isFunction(message)) {\n      return message(scope);\n    } else {\n      return message;\n    }\n  };\n\n  var merge = function (dest, obj) {\n    var key, value;\n    for (key in obj) if (obj.hasOwnProperty(key)) {\n      value = obj[key];\n      if (isString(value) || isNumber(value) || isBoolean(value) || isArray(value) || isNull(value)) {\n        dest[key] = value;\n      } else {\n        if (dest[key] == null) dest[key] = {};\n        merge(dest[key], value);\n      }\n    }\n    return dest;\n  };\n\n  // Set default days/months translations.\n  var DATE = {\n      day_names: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]\n    , abbr_day_names: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]\n    , month_names: [null, \"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\n    , abbr_month_names: [null, \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n    , meridian: [\"AM\", \"PM\"]\n  };\n\n  // Set default number format.\n  var NUMBER_FORMAT = {\n      precision: 3\n    , separator: \".\"\n    , delimiter: \",\"\n    , strip_insignificant_zeros: false\n  };\n\n  // Set default currency format.\n  var CURRENCY_FORMAT = {\n      unit: \"$\"\n    , precision: 2\n    , format: \"%u%n\"\n    , sign_first: true\n    , delimiter: \",\"\n    , separator: \".\"\n  };\n\n  // Set default percentage format.\n  var PERCENTAGE_FORMAT = {\n      unit: \"%\"\n    , precision: 3\n    , format: \"%n%u\"\n    , separator: \".\"\n    , delimiter: \"\"\n  };\n\n  // Set default size units.\n  var SIZE_UNITS = [null, \"kb\", \"mb\", \"gb\", \"tb\"];\n\n  // Other default options\n  var DEFAULT_OPTIONS = {\n    // Set default locale. This locale will be used when fallback is enabled and\n    // the translation doesn't exist in a particular locale.\n      defaultLocale: \"en\"\n    // Set the current locale to `en`.\n    , locale: \"en\"\n    // Set the translation key separator.\n    , defaultSeparator: \".\"\n    // Set the placeholder format. Accepts `{{placeholder}}` and `%{placeholder}`.\n    , placeholder: /(?:\\{\\{|%\\{)(.*?)(?:\\}\\}?)/gm\n    // Set if engine should fallback to the default locale when a translation\n    // is missing.\n    , fallbacks: false\n    // Set the default translation object.\n    , translations: {}\n    // Set missing translation behavior. 'message' will display a message\n    // that the translation is missing, 'guess' will try to guess the string\n    , missingBehaviour: 'message'\n    // if you use missingBehaviour with 'message', but want to know that the\n    // string is actually missing for testing purposes, you can prefix the\n    // guessed string by setting the value here. By default, no prefix!\n    , missingTranslationPrefix: ''\n  };\n\n  // Set default locale. This locale will be used when fallback is enabled and\n  // the translation doesn't exist in a particular locale.\n  I18n.reset = function() {\n    var key;\n    for (key in DEFAULT_OPTIONS) {\n      this[key] = DEFAULT_OPTIONS[key];\n    }\n  };\n\n  // Much like `reset`, but only assign options if not already assigned\n  I18n.initializeOptions = function() {\n    var key;\n    for (key in DEFAULT_OPTIONS) if (!isSet(this[key])) {\n      this[key] = DEFAULT_OPTIONS[key];\n    }\n  };\n  I18n.initializeOptions();\n\n  // Return a list of all locales that must be tried before returning the\n  // missing translation message. By default, this will consider the inline option,\n  // current locale and fallback locale.\n  //\n  //     I18n.locales.get(\"de-DE\");\n  //     // [\"de-DE\", \"de\", \"en\"]\n  //\n  // You can define custom rules for any locale. Just make sure you return a array\n  // containing all locales.\n  //\n  //     // Default the Wookie locale to English.\n  //     I18n.locales[\"wk\"] = function(locale) {\n  //       return [\"en\"];\n  //     };\n  //\n  I18n.locales = {};\n\n  // Retrieve locales based on inline locale, current locale or default to\n  // I18n's detection.\n  I18n.locales.get = function(locale) {\n    var result = this[locale] || this[I18n.locale] || this[\"default\"];\n\n    if (isFunction(result)) {\n      result = result(locale);\n    }\n\n    if (isArray(result) === false) {\n      result = [result];\n    }\n\n    return result;\n  };\n\n  // The default locale list.\n  I18n.locales[\"default\"] = function(locale) {\n    var locales = []\n      , list = []\n    ;\n\n    // Handle the inline locale option that can be provided to\n    // the `I18n.t` options.\n    if (locale) {\n      locales.push(locale);\n    }\n\n    // Add the current locale to the list.\n    if (!locale && I18n.locale) {\n      locales.push(I18n.locale);\n    }\n\n    // Add the default locale if fallback strategy is enabled.\n    if (I18n.fallbacks && I18n.defaultLocale) {\n      locales.push(I18n.defaultLocale);\n    }\n\n    // Locale code format 1:\n    // According to RFC4646 (http://www.ietf.org/rfc/rfc4646.txt)\n    // language codes for Traditional Chinese should be `zh-Hant`\n    //\n    // But due to backward compatibility\n    // We use older version of IETF language tag\n    // @see http://www.w3.org/TR/html401/struct/dirlang.html\n    // @see http://en.wikipedia.org/wiki/IETF_language_tag\n    //\n    // Format: `language-code = primary-code ( \"-\" subcode )*`\n    //\n    // primary-code uses ISO639-1\n    // @see http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes\n    // @see http://www.iso.org/iso/home/standards/language_codes.htm\n    //\n    // subcode uses ISO 3166-1 alpha-2\n    // @see http://en.wikipedia.org/wiki/ISO_3166\n    // @see http://www.iso.org/iso/country_codes.htm\n    //\n    // @note\n    //   subcode can be in upper case or lower case\n    //   defining it in upper case is a convention only\n\n\n    // Locale code format 2:\n    // Format: `code = primary-code ( \"-\" region-code )*`\n    // primary-code uses ISO 639-1\n    // script-code uses ISO 15924\n    // region-code uses ISO 3166-1 alpha-2\n    // Example: zh-Hant-TW, en-HK, zh-Hant-CN\n    //\n    // It is similar to RFC4646 (or actually the same),\n    // but seems to be limited to language, script, region\n\n    // Compute each locale with its country code.\n    // So this will return an array containing\n    // `de-DE` and `de`\n    // or\n    // `zh-hans-tw`, `zh-hans`, `zh`\n    // locales.\n    locales.forEach(function(locale) {\n      var localeParts = locale.split(\"-\");\n      var firstFallback = null;\n      var secondFallback = null;\n      if (localeParts.length === 3) {\n        firstFallback = [\n          localeParts[0],\n          localeParts[1]\n        ].join(\"-\");\n        secondFallback = localeParts[0];\n      }\n      else if (localeParts.length === 2) {\n        firstFallback = localeParts[0];\n      }\n\n      if (list.indexOf(locale) === -1) {\n        list.push(locale);\n      }\n\n      if (! I18n.fallbacks) {\n        return;\n      }\n\n      [\n        firstFallback,\n        secondFallback\n      ].forEach(function(nullableFallbackLocale) {\n        // We don't want null values\n        if (typeof nullableFallbackLocale === \"undefined\") { return; }\n        if (nullableFallbackLocale === null) { return; }\n        // We don't want duplicate values\n        //\n        // Comparing with `locale` first is faster than\n        // checking whether value's presence in the list\n        if (nullableFallbackLocale === locale) { return; }\n        if (list.indexOf(nullableFallbackLocale) !== -1) { return; }\n\n        list.push(nullableFallbackLocale);\n      });\n    });\n\n    // No locales set? English it is.\n    if (!locales.length) {\n      locales.push(\"en\");\n    }\n\n    return list;\n  };\n\n  // Hold pluralization rules.\n  I18n.pluralization = {};\n\n  // Return the pluralizer for a specific locale.\n  // If no specify locale is found, then I18n's default will be used.\n  I18n.pluralization.get = function(locale) {\n    return this[locale] || this[I18n.locale] || this[\"default\"];\n  };\n\n  // The default pluralizer rule.\n  // It detects the `zero`, `one`, and `other` scopes.\n  I18n.pluralization[\"default\"] = function(count) {\n    switch (count) {\n      case 0: return [\"zero\", \"other\"];\n      case 1: return [\"one\"];\n      default: return [\"other\"];\n    }\n  };\n\n  // Return current locale. If no locale has been set, then\n  // the current locale will be the default locale.\n  I18n.currentLocale = function() {\n    return this.locale || this.defaultLocale;\n  };\n\n  // Check if value is different than undefined and null;\n  I18n.isSet = isSet;\n\n  // Find and process the translation using the provided scope and options.\n  // This is used internally by some functions and should not be used as an\n  // public API.\n  I18n.lookup = function(scope, options) {\n    options = options || {};\n\n    var locales = this.locales.get(options.locale).slice()\n      , locale\n      , scopes\n      , fullScope\n      , translations\n    ;\n\n    fullScope = this.getFullScope(scope, options);\n\n    while (locales.length) {\n      locale = locales.shift();\n      scopes = fullScope.split(options.separator || this.defaultSeparator);\n      translations = this.translations[locale];\n\n      if (!translations) {\n        continue;\n      }\n      while (scopes.length) {\n        translations = translations[scopes.shift()];\n\n        if (translations === undefined || translations === null) {\n          break;\n        }\n      }\n\n      if (translations !== undefined && translations !== null) {\n        return translations;\n      }\n    }\n\n    if (isSet(options.defaultValue)) {\n      return lazyEvaluate(options.defaultValue, scope);\n    }\n  };\n\n  // lookup pluralization rule key into translations\n  I18n.pluralizationLookupWithoutFallback = function(count, locale, translations) {\n    var pluralizer = this.pluralization.get(locale)\n      , pluralizerKeys = pluralizer(count)\n      , pluralizerKey\n      , message;\n\n    if (isObject(translations)) {\n      while (pluralizerKeys.length) {\n        pluralizerKey = pluralizerKeys.shift();\n        if (isSet(translations[pluralizerKey])) {\n          message = translations[pluralizerKey];\n          break;\n        }\n      }\n    }\n\n    return message;\n  };\n\n  // Lookup dedicated to pluralization\n  I18n.pluralizationLookup = function(count, scope, options) {\n    options = options || {};\n    var locales = this.locales.get(options.locale).slice()\n      , locale\n      , scopes\n      , translations\n      , message\n    ;\n    scope = this.getFullScope(scope, options);\n\n    while (locales.length) {\n      locale = locales.shift();\n      scopes = scope.split(options.separator || this.defaultSeparator);\n      translations = this.translations[locale];\n\n      if (!translations) {\n        continue;\n      }\n\n      while (scopes.length) {\n        translations = translations[scopes.shift()];\n        if (!isObject(translations)) {\n          break;\n        }\n        if (scopes.length === 0) {\n          message = this.pluralizationLookupWithoutFallback(count, locale, translations);\n        }\n      }\n      if (typeof message !== \"undefined\" && message !== null) {\n        break;\n      }\n    }\n\n    if (typeof message === \"undefined\" || message === null) {\n      if (isSet(options.defaultValue)) {\n        if (isObject(options.defaultValue)) {\n          message = this.pluralizationLookupWithoutFallback(count, options.locale, options.defaultValue);\n        } else {\n          message = options.defaultValue;\n        }\n        translations = options.defaultValue;\n      }\n    }\n\n    return { message: message, translations: translations };\n  };\n\n  // Rails changed the way the meridian is stored.\n  // It started with `date.meridian` returning an array,\n  // then it switched to `time.am` and `time.pm`.\n  // This function abstracts this difference and returns\n  // the correct meridian or the default value when none is provided.\n  I18n.meridian = function() {\n    var time = this.lookup(\"time\");\n    var date = this.lookup(\"date\");\n\n    if (time && time.am && time.pm) {\n      return [time.am, time.pm];\n    } else if (date && date.meridian) {\n      return date.meridian;\n    } else {\n      return DATE.meridian;\n    }\n  };\n\n  // Merge serveral hash options, checking if value is set before\n  // overwriting any value. The precedence is from left to right.\n  //\n  //     I18n.prepareOptions({name: \"John Doe\"}, {name: \"Mary Doe\", role: \"user\"});\n  //     #=> {name: \"John Doe\", role: \"user\"}\n  //\n  I18n.prepareOptions = function() {\n    var args = slice.call(arguments)\n      , options = {}\n      , subject\n    ;\n\n    while (args.length) {\n      subject = args.shift();\n\n      if (typeof(subject) != \"object\") {\n        continue;\n      }\n\n      for (var attr in subject) {\n        if (!subject.hasOwnProperty(attr)) {\n          continue;\n        }\n\n        if (isSet(options[attr])) {\n          continue;\n        }\n\n        options[attr] = subject[attr];\n      }\n    }\n\n    return options;\n  };\n\n  // Generate a list of translation options for default fallbacks.\n  // `defaultValue` is also deleted from options as it is returned as part of\n  // the translationOptions array.\n  I18n.createTranslationOptions = function(scope, options) {\n    var translationOptions = [{scope: scope}];\n\n    // Defaults should be an array of hashes containing either\n    // fallback scopes or messages\n    if (isSet(options.defaults)) {\n      translationOptions = translationOptions.concat(options.defaults);\n    }\n\n    // Maintain support for defaultValue. Since it is always a message\n    // insert it in to the translation options as such.\n    if (isSet(options.defaultValue)) {\n      translationOptions.push({ message: options.defaultValue });\n    }\n\n    return translationOptions;\n  };\n\n  // Translate the given scope with the provided options.\n  I18n.translate = function(scope, options) {\n    options = options || {};\n\n    var translationOptions = this.createTranslationOptions(scope, options);\n\n    var translation;\n    var usedScope = scope;\n\n    var optionsWithoutDefault = this.prepareOptions(options)\n    delete optionsWithoutDefault.defaultValue\n\n    // Iterate through the translation options until a translation\n    // or message is found.\n    var translationFound =\n      translationOptions.some(function(translationOption) {\n        if (isSet(translationOption.scope)) {\n          usedScope = translationOption.scope;\n          translation = this.lookup(usedScope, optionsWithoutDefault);\n        } else if (isSet(translationOption.message)) {\n          translation = lazyEvaluate(translationOption.message, scope);\n        }\n\n        if (translation !== undefined && translation !== null) {\n          return true;\n        }\n      }, this);\n\n    if (!translationFound) {\n      return this.missingTranslation(scope, options);\n    }\n\n    if (typeof(translation) === \"string\") {\n      translation = this.interpolate(translation, options);\n    } else if (isArray(translation)) {\n      translation = translation.map(function(t) {\n        return (typeof(t) === \"string\" ? this.interpolate(t, options) : t);\n      }, this);\n    } else if (isObject(translation) && isSet(options.count)) {\n      translation = this.pluralize(options.count, usedScope, options);\n    }\n\n    return translation;\n  };\n\n  // This function interpolates the all variables in the given message.\n  I18n.interpolate = function(message, options) {\n    if (message == null) {\n      return message;\n    }\n\n    options = options || {};\n    var matches = message.match(this.placeholder)\n      , placeholder\n      , value\n      , name\n      , regex\n    ;\n\n    if (!matches) {\n      return message;\n    }\n\n    while (matches.length) {\n      placeholder = matches.shift();\n      name = placeholder.replace(this.placeholder, \"$1\");\n\n      if (isSet(options[name])) {\n        value = options[name].toString().replace(/\\$/gm, \"_#$#_\");\n      } else if (name in options) {\n        value = this.nullPlaceholder(placeholder, message, options);\n      } else {\n        value = this.missingPlaceholder(placeholder, message, options);\n      }\n\n      regex = new RegExp(placeholder.replace(/{/gm, \"\\\\{\").replace(/}/gm, \"\\\\}\"));\n      message = message.replace(regex, value);\n    }\n\n    return message.replace(/_#\\$#_/g, \"$\");\n  };\n\n  // Pluralize the given scope using the `count` value.\n  // The pluralized translation may have other placeholders,\n  // which will be retrieved from `options`.\n  I18n.pluralize = function(count, scope, options) {\n    options = this.prepareOptions({count: String(count)}, options)\n    var pluralizer, result;\n\n    result = this.pluralizationLookup(count, scope, options);\n    if (typeof result.translations === \"undefined\" || result.translations == null) {\n      return this.missingTranslation(scope, options);\n    }\n\n    if (typeof result.message !== \"undefined\" && result.message != null) {\n      return this.interpolate(result.message, options);\n    }\n    else {\n      pluralizer = this.pluralization.get(options.locale);\n      return this.missingTranslation(scope + '.' + pluralizer(count)[0], options);\n    }\n  };\n\n  // Return a missing translation message for the given parameters.\n  I18n.missingTranslation = function(scope, options) {\n    //guess intended string\n    if(this.missingBehaviour === 'guess'){\n      //get only the last portion of the scope\n      var s = scope.split('.').slice(-1)[0];\n      //replace underscore with space && camelcase with space and lowercase letter\n      return (this.missingTranslationPrefix.length > 0 ? this.missingTranslationPrefix : '') +\n          s.replace(/_/g,' ').replace(/([a-z])([A-Z])/g,\n          function(match, p1, p2) {return p1 + ' ' + p2.toLowerCase()} );\n    }\n\n    var localeForTranslation = (options != null && options.locale != null) ? options.locale : this.currentLocale();\n    var fullScope           = this.getFullScope(scope, options);\n    var fullScopeWithLocale = [localeForTranslation, fullScope].join(options.separator || this.defaultSeparator);\n\n    return '[missing \"' + fullScopeWithLocale + '\" translation]';\n  };\n\n  // Return a missing placeholder message for given parameters\n  I18n.missingPlaceholder = function(placeholder, message, options) {\n    return \"[missing \" + placeholder + \" value]\";\n  };\n\n  I18n.nullPlaceholder = function() {\n    return I18n.missingPlaceholder.apply(I18n, arguments);\n  };\n\n  // Format number using localization rules.\n  // The options will be retrieved from the `number.format` scope.\n  // If this isn't present, then the following options will be used:\n  //\n  // - `precision`: `3`\n  // - `separator`: `\".\"`\n  // - `delimiter`: `\",\"`\n  // - `strip_insignificant_zeros`: `false`\n  //\n  // You can also override these options by providing the `options` argument.\n  //\n  I18n.toNumber = function(number, options) {\n    options = this.prepareOptions(\n        options\n      , this.lookup(\"number.format\")\n      , NUMBER_FORMAT\n    );\n\n    var negative = number < 0\n      , string = toFixed(Math.abs(number), options.precision).toString()\n      , parts = string.split(\".\")\n      , precision\n      , buffer = []\n      , formattedNumber\n      , format = options.format || \"%n\"\n      , sign = negative ? \"-\" : \"\"\n    ;\n\n    number = parts[0];\n    precision = parts[1];\n\n    while (number.length > 0) {\n      buffer.unshift(number.substr(Math.max(0, number.length - 3), 3));\n      number = number.substr(0, number.length -3);\n    }\n\n    formattedNumber = buffer.join(options.delimiter);\n\n    if (options.strip_insignificant_zeros && precision) {\n      precision = precision.replace(/0+$/, \"\");\n    }\n\n    if (options.precision > 0 && precision) {\n      formattedNumber += options.separator + precision;\n    }\n\n    if (options.sign_first) {\n      format = \"%s\" + format;\n    }\n    else {\n      format = format.replace(\"%n\", \"%s%n\");\n    }\n\n    formattedNumber = format\n      .replace(\"%u\", options.unit)\n      .replace(\"%n\", formattedNumber)\n      .replace(\"%s\", sign)\n    ;\n\n    return formattedNumber;\n  };\n\n  // Format currency with localization rules.\n  // The options will be retrieved from the `number.currency.format` and\n  // `number.format` scopes, in that order.\n  //\n  // Any missing option will be retrieved from the `I18n.toNumber` defaults and\n  // the following options:\n  //\n  // - `unit`: `\"$\"`\n  // - `precision`: `2`\n  // - `format`: `\"%u%n\"`\n  // - `delimiter`: `\",\"`\n  // - `separator`: `\".\"`\n  //\n  // You can also override these options by providing the `options` argument.\n  //\n  I18n.toCurrency = function(number, options) {\n    options = this.prepareOptions(\n        options\n      , this.lookup(\"number.currency.format\", options)\n      , this.lookup(\"number.format\", options)\n      , CURRENCY_FORMAT\n    );\n\n    return this.toNumber(number, options);\n  };\n\n  // Localize several values.\n  // You can provide the following scopes: `currency`, `number`, or `percentage`.\n  // If you provide a scope that matches the `/^(date|time)/` regular expression\n  // then the `value` will be converted by using the `I18n.toTime` function.\n  //\n  // It will default to the value's `toString` function.\n  //\n  I18n.localize = function(scope, value, options) {\n    options || (options = {});\n\n    switch (scope) {\n      case \"currency\":\n        return this.toCurrency(value, options);\n      case \"number\":\n        scope = this.lookup(\"number.format\", options);\n        return this.toNumber(value, scope);\n      case \"percentage\":\n        return this.toPercentage(value, options);\n      default:\n        var localizedValue;\n\n        if (scope.match(/^(date|time)/)) {\n          localizedValue = this.toTime(scope, value, options);\n        } else {\n          localizedValue = value.toString();\n        }\n\n        return this.interpolate(localizedValue, options);\n    }\n  };\n\n  // Parse a given `date` string into a JavaScript Date object.\n  // This function is time zone aware.\n  //\n  // The following string formats are recognized:\n  //\n  //    yyyy-mm-dd\n  //    yyyy-mm-dd[ T]hh:mm::ss\n  //    yyyy-mm-dd[ T]hh:mm::ss\n  //    yyyy-mm-dd[ T]hh:mm::ssZ\n  //    yyyy-mm-dd[ T]hh:mm::ss+0000\n  //    yyyy-mm-dd[ T]hh:mm::ss+00:00\n  //    yyyy-mm-dd[ T]hh:mm::ss.123Z\n  //\n  I18n.parseDate = function(date) {\n    var matches, convertedDate, fraction;\n    // A date input of `null` or `undefined` will be returned as-is\n    if (date == null) {\n      return date;\n    }\n    // we have a date, so just return it.\n    if (typeof(date) === \"object\") {\n      return date;\n    }\n\n    matches = date.toString().match(/(\\d{4})-(\\d{2})-(\\d{2})(?:[ T](\\d{2}):(\\d{2}):(\\d{2})([\\.,]\\d{1,3})?)?(Z|\\+00:?00)?/);\n\n    if (matches) {\n      for (var i = 1; i <= 6; i++) {\n        matches[i] = parseInt(matches[i], 10) || 0;\n      }\n\n      // month starts on 0\n      matches[2] -= 1;\n\n      fraction = matches[7] ? 1000 * (\"0\" + matches[7]) : null;\n\n      if (matches[8]) {\n        convertedDate = new Date(Date.UTC(matches[1], matches[2], matches[3], matches[4], matches[5], matches[6], fraction));\n      } else {\n        convertedDate = new Date(matches[1], matches[2], matches[3], matches[4], matches[5], matches[6], fraction);\n      }\n    } else if (typeof(date) == \"number\") {\n      // UNIX timestamp\n      convertedDate = new Date();\n      convertedDate.setTime(date);\n    } else if (date.match(/([A-Z][a-z]{2}) ([A-Z][a-z]{2}) (\\d+) (\\d+:\\d+:\\d+) ([+-]\\d+) (\\d+)/)) {\n      // This format `Wed Jul 20 13:03:39 +0000 2011` is parsed by\n      // webkit/firefox, but not by IE, so we must parse it manually.\n      convertedDate = new Date();\n      convertedDate.setTime(Date.parse([\n        RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$6, RegExp.$4, RegExp.$5\n      ].join(\" \")));\n    } else if (date.match(/\\d+ \\d+:\\d+:\\d+ [+-]\\d+ \\d+/)) {\n      // a valid javascript format with timezone info\n      convertedDate = new Date();\n      convertedDate.setTime(Date.parse(date));\n    } else {\n      // an arbitrary javascript string\n      convertedDate = new Date();\n      convertedDate.setTime(Date.parse(date));\n    }\n\n    return convertedDate;\n  };\n\n  // Formats time according to the directives in the given format string.\n  // The directives begins with a percent (%) character. Any text not listed as a\n  // directive will be passed through to the output string.\n  //\n  // The accepted formats are:\n  //\n  //     %a     - The abbreviated weekday name (Sun)\n  //     %A     - The full weekday name (Sunday)\n  //     %b     - The abbreviated month name (Jan)\n  //     %B     - The full month name (January)\n  //     %c     - The preferred local date and time representation\n  //     %d     - Day of the month (01..31)\n  //     %-d    - Day of the month (1..31)\n  //     %H     - Hour of the day, 24-hour clock (00..23)\n  //     %-H/%k - Hour of the day, 24-hour clock (0..23)\n  //     %I     - Hour of the day, 12-hour clock (01..12)\n  //     %-I/%l - Hour of the day, 12-hour clock (1..12)\n  //     %m     - Month of the year (01..12)\n  //     %-m    - Month of the year (1..12)\n  //     %M     - Minute of the hour (00..59)\n  //     %-M    - Minute of the hour (0..59)\n  //     %p     - Meridian indicator (AM  or  PM)\n  //     %P     - Meridian indicator (am  or  pm)\n  //     %S     - Second of the minute (00..60)\n  //     %-S    - Second of the minute (0..60)\n  //     %w     - Day of the week (Sunday is 0, 0..6)\n  //     %y     - Year without a century (00..99)\n  //     %-y    - Year without a century (0..99)\n  //     %Y     - Year with century\n  //     %z/%Z  - Timezone offset (+0545)\n  //\n  I18n.strftime = function(date, format, options) {\n    var options = this.lookup(\"date\", options)\n      , meridianOptions = I18n.meridian()\n    ;\n\n    if (!options) {\n      options = {};\n    }\n\n    options = this.prepareOptions(options, DATE);\n\n    if (isNaN(date.getTime())) {\n      throw new Error('I18n.strftime() requires a valid date object, but received an invalid date.');\n    }\n\n    var weekDay = date.getDay()\n      , day = date.getDate()\n      , year = date.getFullYear()\n      , month = date.getMonth() + 1\n      , hour = date.getHours()\n      , hour12 = hour\n      , meridian = hour > 11 ? 1 : 0\n      , secs = date.getSeconds()\n      , mins = date.getMinutes()\n      , offset = date.getTimezoneOffset()\n      , absOffsetHours = Math.floor(Math.abs(offset / 60))\n      , absOffsetMinutes = Math.abs(offset) - (absOffsetHours * 60)\n      , timezoneoffset = (offset > 0 ? \"-\" : \"+\") +\n          (absOffsetHours.toString().length < 2 ? \"0\" + absOffsetHours : absOffsetHours) +\n          (absOffsetMinutes.toString().length < 2 ? \"0\" + absOffsetMinutes : absOffsetMinutes)\n    ;\n\n    if (hour12 > 12) {\n      hour12 = hour12 - 12;\n    } else if (hour12 === 0) {\n      hour12 = 12;\n    }\n\n    format = format.replace(\"%a\", options.abbr_day_names[weekDay]);\n    format = format.replace(\"%A\", options.day_names[weekDay]);\n    format = format.replace(\"%b\", options.abbr_month_names[month]);\n    format = format.replace(\"%B\", options.month_names[month]);\n    format = format.replace(\"%d\", padding(day));\n    format = format.replace(\"%e\", day);\n    format = format.replace(\"%-d\", day);\n    format = format.replace(\"%H\", padding(hour));\n    format = format.replace(\"%-H\", hour);\n    format = format.replace(\"%k\", hour);\n    format = format.replace(\"%I\", padding(hour12));\n    format = format.replace(\"%-I\", hour12);\n    format = format.replace(\"%l\", hour12);\n    format = format.replace(\"%m\", padding(month));\n    format = format.replace(\"%-m\", month);\n    format = format.replace(\"%M\", padding(mins));\n    format = format.replace(\"%-M\", mins);\n    format = format.replace(\"%p\", meridianOptions[meridian]);\n    format = format.replace(\"%P\", meridianOptions[meridian].toLowerCase());\n    format = format.replace(\"%S\", padding(secs));\n    format = format.replace(\"%-S\", secs);\n    format = format.replace(\"%w\", weekDay);\n    format = format.replace(\"%y\", padding(year));\n    format = format.replace(\"%-y\", padding(year).replace(/^0+/, \"\"));\n    format = format.replace(\"%Y\", year);\n    format = format.replace(\"%z\", timezoneoffset);\n    format = format.replace(\"%Z\", timezoneoffset);\n\n    return format;\n  };\n\n  // Convert the given dateString into a formatted date.\n  I18n.toTime = function(scope, dateString, options) {\n    var date = this.parseDate(dateString)\n      , format = this.lookup(scope, options)\n    ;\n\n    // A date input of `null` or `undefined` will be returned as-is\n    if (date == null) {\n      return date;\n    }\n\n    var date_string = date.toString()\n    if (date_string.match(/invalid/i)) {\n      return date_string;\n    }\n\n    if (!format) {\n      return date_string;\n    }\n\n    return this.strftime(date, format, options);\n  };\n\n  // Convert a number into a formatted percentage value.\n  I18n.toPercentage = function(number, options) {\n    options = this.prepareOptions(\n        options\n      , this.lookup(\"number.percentage.format\", options)\n      , this.lookup(\"number.format\", options)\n      , PERCENTAGE_FORMAT\n    );\n\n    return this.toNumber(number, options);\n  };\n\n  // Convert a number into a readable size representation.\n  I18n.toHumanSize = function(number, options) {\n    var kb = 1024\n      , size = number\n      , iterations = 0\n      , unit\n      , precision\n      , fullScope\n    ;\n\n    while (size >= kb && iterations < 4) {\n      size = size / kb;\n      iterations += 1;\n    }\n\n    if (iterations === 0) {\n      fullScope = this.getFullScope(\"number.human.storage_units.units.byte\", options);\n      unit = this.t(fullScope, {count: size});\n      precision = 0;\n    } else {\n      fullScope = this.getFullScope(\"number.human.storage_units.units.\" + SIZE_UNITS[iterations], options);\n      unit = this.t(fullScope);\n      precision = (size - Math.floor(size) === 0) ? 0 : 1;\n    }\n\n    options = this.prepareOptions(\n        options\n      , {unit: unit, precision: precision, format: \"%n%u\", delimiter: \"\"}\n    );\n\n    return this.toNumber(size, options);\n  };\n\n  I18n.getFullScope = function(scope, options) {\n    options = options || {};\n\n    // Deal with the scope as an array.\n    if (isArray(scope)) {\n      scope = scope.join(options.separator || this.defaultSeparator);\n    }\n\n    // Deal with the scope option provided through the second argument.\n    //\n    //    I18n.t('hello', {scope: 'greetings'});\n    //\n    if (options.scope) {\n      scope = [options.scope, scope].join(options.separator || this.defaultSeparator);\n    }\n\n    return scope;\n  };\n  /**\n   * Merge obj1 with obj2 (shallow merge), without modifying inputs\n   * @param {Object} obj1\n   * @param {Object} obj2\n   * @returns {Object} Merged values of obj1 and obj2\n   *\n   * In order to support ES3, `Object.prototype.hasOwnProperty.call` is used\n   * Idea is from:\n   * https://stackoverflow.com/questions/8157700/object-has-no-hasownproperty-method-i-e-its-undefined-ie8\n   */\n  I18n.extend = function ( obj1, obj2 ) {\n    if (typeof(obj1) === \"undefined\" && typeof(obj2) === \"undefined\") {\n      return {};\n    }\n    return merge(obj1, obj2);\n  };\n\n  // Set aliases, so we can save some typing.\n  I18n.t = I18n.translate.bind(I18n);\n  I18n.l = I18n.localize.bind(I18n);\n  I18n.p = I18n.pluralize.bind(I18n);\n\n  return I18n;\n}));\n", "/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */;\n\n(function() {\n  var context = this;\n\n  (function() {\n    (function() {\n      this.Rails = {\n        linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n        buttonClickSelector: {\n          selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n          exclude: 'form button'\n        },\n        inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n        formSubmitSelector: 'form:not([data-turbo=true])',\n        formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n        formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n        formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n        fileInputSelector: 'input[name][type=file]:not([disabled])',\n        linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n        buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n      };\n\n    }).call(this);\n  }).call(context);\n\n  var Rails = context.Rails;\n\n  (function() {\n    (function() {\n      var nonce;\n\n      nonce = null;\n\n      Rails.loadCSPNonce = function() {\n        var ref;\n        return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n      };\n\n      Rails.cspNonce = function() {\n        return nonce != null ? nonce : Rails.loadCSPNonce();\n      };\n\n    }).call(this);\n    (function() {\n      var expando, m;\n\n      m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n      Rails.matches = function(element, selector) {\n        if (selector.exclude != null) {\n          return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n        } else {\n          return m.call(element, selector);\n        }\n      };\n\n      expando = '_ujsData';\n\n      Rails.getData = function(element, key) {\n        var ref;\n        return (ref = element[expando]) != null ? ref[key] : void 0;\n      };\n\n      Rails.setData = function(element, key, value) {\n        if (element[expando] == null) {\n          element[expando] = {};\n        }\n        return element[expando][key] = value;\n      };\n\n      Rails.isContentEditable = function(element) {\n        var isEditable;\n        isEditable = false;\n        while (true) {\n          if (element.isContentEditable) {\n            isEditable = true;\n            break;\n          }\n          element = element.parentElement;\n          if (!element) {\n            break;\n          }\n        }\n        return isEditable;\n      };\n\n      Rails.$ = function(selector) {\n        return Array.prototype.slice.call(document.querySelectorAll(selector));\n      };\n\n    }).call(this);\n    (function() {\n      var $, csrfParam, csrfToken;\n\n      $ = Rails.$;\n\n      csrfToken = Rails.csrfToken = function() {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-token]');\n        return meta && meta.content;\n      };\n\n      csrfParam = Rails.csrfParam = function() {\n        var meta;\n        meta = document.querySelector('meta[name=csrf-param]');\n        return meta && meta.content;\n      };\n\n      Rails.CSRFProtection = function(xhr) {\n        var token;\n        token = csrfToken();\n        if (token != null) {\n          return xhr.setRequestHeader('X-CSRF-Token', token);\n        }\n      };\n\n      Rails.refreshCSRFTokens = function() {\n        var param, token;\n        token = csrfToken();\n        param = csrfParam();\n        if ((token != null) && (param != null)) {\n          return $('form input[name=\"' + param + '\"]').forEach(function(input) {\n            return input.value = token;\n          });\n        }\n      };\n\n    }).call(this);\n    (function() {\n      var CustomEvent, fire, matches, preventDefault;\n\n      matches = Rails.matches;\n\n      CustomEvent = window.CustomEvent;\n\n      if (typeof CustomEvent !== 'function') {\n        CustomEvent = function(event, params) {\n          var evt;\n          evt = document.createEvent('CustomEvent');\n          evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n          return evt;\n        };\n        CustomEvent.prototype = window.Event.prototype;\n        preventDefault = CustomEvent.prototype.preventDefault;\n        CustomEvent.prototype.preventDefault = function() {\n          var result;\n          result = preventDefault.call(this);\n          if (this.cancelable && !this.defaultPrevented) {\n            Object.defineProperty(this, 'defaultPrevented', {\n              get: function() {\n                return true;\n              }\n            });\n          }\n          return result;\n        };\n      }\n\n      fire = Rails.fire = function(obj, name, data) {\n        var event;\n        event = new CustomEvent(name, {\n          bubbles: true,\n          cancelable: true,\n          detail: data\n        });\n        obj.dispatchEvent(event);\n        return !event.defaultPrevented;\n      };\n\n      Rails.stopEverything = function(e) {\n        fire(e.target, 'ujs:everythingStopped');\n        e.preventDefault();\n        e.stopPropagation();\n        return e.stopImmediatePropagation();\n      };\n\n      Rails.delegate = function(element, selector, eventType, handler) {\n        return element.addEventListener(eventType, function(e) {\n          var target;\n          target = e.target;\n          while (!(!(target instanceof Element) || matches(target, selector))) {\n            target = target.parentNode;\n          }\n          if (target instanceof Element && handler.call(target, e) === false) {\n            e.preventDefault();\n            return e.stopPropagation();\n          }\n        });\n      };\n\n    }).call(this);\n    (function() {\n      var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n\n      cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n\n      AcceptHeaders = {\n        '*': '*/*',\n        text: 'text/plain',\n        html: 'text/html',\n        xml: 'application/xml, text/xml',\n        json: 'application/json, text/javascript',\n        script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n      };\n\n      Rails.ajax = function(options) {\n        var xhr;\n        options = prepareOptions(options);\n        xhr = createXHR(options, function() {\n          var ref, response;\n          response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n          if (Math.floor(xhr.status / 100) === 2) {\n            if (typeof options.success === \"function\") {\n              options.success(response, xhr.statusText, xhr);\n            }\n          } else {\n            if (typeof options.error === \"function\") {\n              options.error(response, xhr.statusText, xhr);\n            }\n          }\n          return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n        });\n        if ((options.beforeSend != null) && !options.beforeSend(xhr, options)) {\n          return false;\n        }\n        if (xhr.readyState === XMLHttpRequest.OPENED) {\n          return xhr.send(options.data);\n        }\n      };\n\n      prepareOptions = function(options) {\n        options.url = options.url || location.href;\n        options.type = options.type.toUpperCase();\n        if (options.type === 'GET' && options.data) {\n          if (options.url.indexOf('?') < 0) {\n            options.url += '?' + options.data;\n          } else {\n            options.url += '&' + options.data;\n          }\n        }\n        if (AcceptHeaders[options.dataType] == null) {\n          options.dataType = '*';\n        }\n        options.accept = AcceptHeaders[options.dataType];\n        if (options.dataType !== '*') {\n          options.accept += ', */*; q=0.01';\n        }\n        return options;\n      };\n\n      createXHR = function(options, done) {\n        var xhr;\n        xhr = new XMLHttpRequest();\n        xhr.open(options.type, options.url, true);\n        xhr.setRequestHeader('Accept', options.accept);\n        if (typeof options.data === 'string') {\n          xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n        }\n        if (!options.crossDomain) {\n          xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n          CSRFProtection(xhr);\n        }\n        xhr.withCredentials = !!options.withCredentials;\n        xhr.onreadystatechange = function() {\n          if (xhr.readyState === XMLHttpRequest.DONE) {\n            return done(xhr);\n          }\n        };\n        return xhr;\n      };\n\n      processResponse = function(response, type) {\n        var parser, script;\n        if (typeof response === 'string' && typeof type === 'string') {\n          if (type.match(/\\bjson\\b/)) {\n            try {\n              response = JSON.parse(response);\n            } catch (error) {}\n          } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n            script = document.createElement('script');\n            script.setAttribute('nonce', cspNonce());\n            script.text = response;\n            document.head.appendChild(script).parentNode.removeChild(script);\n          } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n            parser = new DOMParser();\n            type = type.replace(/;.+/, '');\n            try {\n              response = parser.parseFromString(response, type);\n            } catch (error) {}\n          }\n        }\n        return response;\n      };\n\n      Rails.href = function(element) {\n        return element.href;\n      };\n\n      Rails.isCrossDomain = function(url) {\n        var e, originAnchor, urlAnchor;\n        originAnchor = document.createElement('a');\n        originAnchor.href = location.href;\n        urlAnchor = document.createElement('a');\n        try {\n          urlAnchor.href = url;\n          return !(((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host) || (originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host));\n        } catch (error) {\n          e = error;\n          return true;\n        }\n      };\n\n    }).call(this);\n    (function() {\n      var matches, toArray;\n\n      matches = Rails.matches;\n\n      toArray = function(e) {\n        return Array.prototype.slice.call(e);\n      };\n\n      Rails.serializeElement = function(element, additionalParam) {\n        var inputs, params;\n        inputs = [element];\n        if (matches(element, 'form')) {\n          inputs = toArray(element.elements);\n        }\n        params = [];\n        inputs.forEach(function(input) {\n          if (!input.name || input.disabled) {\n            return;\n          }\n          if (matches(input, 'fieldset[disabled] *')) {\n            return;\n          }\n          if (matches(input, 'select')) {\n            return toArray(input.options).forEach(function(option) {\n              if (option.selected) {\n                return params.push({\n                  name: input.name,\n                  value: option.value\n                });\n              }\n            });\n          } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n            return params.push({\n              name: input.name,\n              value: input.value\n            });\n          }\n        });\n        if (additionalParam) {\n          params.push(additionalParam);\n        }\n        return params.map(function(param) {\n          if (param.name != null) {\n            return (encodeURIComponent(param.name)) + \"=\" + (encodeURIComponent(param.value));\n          } else {\n            return param;\n          }\n        }).join('&');\n      };\n\n      Rails.formElements = function(form, selector) {\n        if (matches(form, 'form')) {\n          return toArray(form.elements).filter(function(el) {\n            return matches(el, selector);\n          });\n        } else {\n          return toArray(form.querySelectorAll(selector));\n        }\n      };\n\n    }).call(this);\n    (function() {\n      var allowAction, fire, stopEverything;\n\n      fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n      Rails.handleConfirm = function(e) {\n        if (!allowAction(this)) {\n          return stopEverything(e);\n        }\n      };\n\n      Rails.confirm = function(message, element) {\n        return confirm(message);\n      };\n\n      allowAction = function(element) {\n        var answer, callback, message;\n        message = element.getAttribute('data-confirm');\n        if (!message) {\n          return true;\n        }\n        answer = false;\n        if (fire(element, 'confirm')) {\n          try {\n            answer = Rails.confirm(message, element);\n          } catch (error) {}\n          callback = fire(element, 'confirm:complete', [answer]);\n        }\n        return answer && callback;\n      };\n\n    }).call(this);\n    (function() {\n      var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isContentEditable, isXhrRedirect, matches, setData, stopEverything;\n\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements, isContentEditable = Rails.isContentEditable;\n\n      Rails.handleDisabledElement = function(e) {\n        var element;\n        element = this;\n        if (element.disabled) {\n          return stopEverything(e);\n        }\n      };\n\n      Rails.enableElement = function(e) {\n        var element;\n        if (e instanceof Event) {\n          if (isXhrRedirect(e)) {\n            return;\n          }\n          element = e.target;\n        } else {\n          element = e;\n        }\n        if (isContentEditable(element)) {\n          return;\n        }\n        if (matches(element, Rails.linkDisableSelector)) {\n          return enableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n          return enableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return enableFormElements(element);\n        }\n      };\n\n      Rails.disableElement = function(e) {\n        var element;\n        element = e instanceof Event ? e.target : e;\n        if (isContentEditable(element)) {\n          return;\n        }\n        if (matches(element, Rails.linkDisableSelector)) {\n          return disableLinkElement(element);\n        } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n          return disableFormElement(element);\n        } else if (matches(element, Rails.formSubmitSelector)) {\n          return disableFormElements(element);\n        }\n      };\n\n      disableLinkElement = function(element) {\n        var replacement;\n        if (getData(element, 'ujs:disabled')) {\n          return;\n        }\n        replacement = element.getAttribute('data-disable-with');\n        if (replacement != null) {\n          setData(element, 'ujs:enable-with', element.innerHTML);\n          element.innerHTML = replacement;\n        }\n        element.addEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableLinkElement = function(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n        if (originalText != null) {\n          element.innerHTML = originalText;\n          setData(element, 'ujs:enable-with', null);\n        }\n        element.removeEventListener('click', stopEverything);\n        return setData(element, 'ujs:disabled', null);\n      };\n\n      disableFormElements = function(form) {\n        return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n      };\n\n      disableFormElement = function(element) {\n        var replacement;\n        if (getData(element, 'ujs:disabled')) {\n          return;\n        }\n        replacement = element.getAttribute('data-disable-with');\n        if (replacement != null) {\n          if (matches(element, 'button')) {\n            setData(element, 'ujs:enable-with', element.innerHTML);\n            element.innerHTML = replacement;\n          } else {\n            setData(element, 'ujs:enable-with', element.value);\n            element.value = replacement;\n          }\n        }\n        element.disabled = true;\n        return setData(element, 'ujs:disabled', true);\n      };\n\n      enableFormElements = function(form) {\n        return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n      };\n\n      enableFormElement = function(element) {\n        var originalText;\n        originalText = getData(element, 'ujs:enable-with');\n        if (originalText != null) {\n          if (matches(element, 'button')) {\n            element.innerHTML = originalText;\n          } else {\n            element.value = originalText;\n          }\n          setData(element, 'ujs:enable-with', null);\n        }\n        element.disabled = false;\n        return setData(element, 'ujs:disabled', null);\n      };\n\n      isXhrRedirect = function(event) {\n        var ref, xhr;\n        xhr = (ref = event.detail) != null ? ref[0] : void 0;\n        return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n      };\n\n    }).call(this);\n    (function() {\n      var isContentEditable, stopEverything;\n\n      stopEverything = Rails.stopEverything;\n\n      isContentEditable = Rails.isContentEditable;\n\n      Rails.handleMethod = function(e) {\n        var csrfParam, csrfToken, form, formContent, href, link, method;\n        link = this;\n        method = link.getAttribute('data-method');\n        if (!method) {\n          return;\n        }\n        if (isContentEditable(this)) {\n          return;\n        }\n        href = Rails.href(link);\n        csrfToken = Rails.csrfToken();\n        csrfParam = Rails.csrfParam();\n        form = document.createElement('form');\n        formContent = \"<input name='_method' value='\" + method + \"' type='hidden' />\";\n        if ((csrfParam != null) && (csrfToken != null) && !Rails.isCrossDomain(href)) {\n          formContent += \"<input name='\" + csrfParam + \"' value='\" + csrfToken + \"' type='hidden' />\";\n        }\n        formContent += '<input type=\"submit\" />';\n        form.method = 'post';\n        form.action = href;\n        form.target = link.target;\n        form.innerHTML = formContent;\n        form.style.display = 'none';\n        document.body.appendChild(form);\n        form.querySelector('[type=\"submit\"]').click();\n        return stopEverything(e);\n      };\n\n    }).call(this);\n    (function() {\n      var ajax, fire, getData, isContentEditable, isCrossDomain, isRemote, matches, serializeElement, setData, stopEverything,\n        slice = [].slice;\n\n      matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement, isContentEditable = Rails.isContentEditable;\n\n      isRemote = function(element) {\n        var value;\n        value = element.getAttribute('data-remote');\n        return (value != null) && value !== 'false';\n      };\n\n      Rails.handleRemote = function(e) {\n        var button, data, dataType, element, method, url, withCredentials;\n        element = this;\n        if (!isRemote(element)) {\n          return true;\n        }\n        if (!fire(element, 'ajax:before')) {\n          fire(element, 'ajax:stopped');\n          return false;\n        }\n        if (isContentEditable(element)) {\n          fire(element, 'ajax:stopped');\n          return false;\n        }\n        withCredentials = element.getAttribute('data-with-credentials');\n        dataType = element.getAttribute('data-type') || 'script';\n        if (matches(element, Rails.formSubmitSelector)) {\n          button = getData(element, 'ujs:submit-button');\n          method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n          url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n          if (method.toUpperCase() === 'GET') {\n            url = url.replace(/\\?.*$/, '');\n          }\n          if (element.enctype === 'multipart/form-data') {\n            data = new FormData(element);\n            if (button != null) {\n              data.append(button.name, button.value);\n            }\n          } else {\n            data = serializeElement(element, button);\n          }\n          setData(element, 'ujs:submit-button', null);\n          setData(element, 'ujs:submit-button-formmethod', null);\n          setData(element, 'ujs:submit-button-formaction', null);\n        } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n          method = element.getAttribute('data-method');\n          url = element.getAttribute('data-url');\n          data = serializeElement(element, element.getAttribute('data-params'));\n        } else {\n          method = element.getAttribute('data-method');\n          url = Rails.href(element);\n          data = element.getAttribute('data-params');\n        }\n        ajax({\n          type: method || 'GET',\n          url: url,\n          data: data,\n          dataType: dataType,\n          beforeSend: function(xhr, options) {\n            if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n              return fire(element, 'ajax:send', [xhr]);\n            } else {\n              fire(element, 'ajax:stopped');\n              return false;\n            }\n          },\n          success: function() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:success', args);\n          },\n          error: function() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:error', args);\n          },\n          complete: function() {\n            var args;\n            args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n            return fire(element, 'ajax:complete', args);\n          },\n          crossDomain: isCrossDomain(url),\n          withCredentials: (withCredentials != null) && withCredentials !== 'false'\n        });\n        return stopEverything(e);\n      };\n\n      Rails.formSubmitButtonClick = function(e) {\n        var button, form;\n        button = this;\n        form = button.form;\n        if (!form) {\n          return;\n        }\n        if (button.name) {\n          setData(form, 'ujs:submit-button', {\n            name: button.name,\n            value: button.value\n          });\n        }\n        setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n        setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n        return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n      };\n\n      Rails.preventInsignificantClick = function(e) {\n        var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n        link = this;\n        method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n        data = link.getAttribute('data-params');\n        metaClick = e.metaKey || e.ctrlKey;\n        insignificantMetaClick = metaClick && method === 'GET' && !data;\n        nonPrimaryMouseClick = (e.button != null) && e.button !== 0;\n        if (nonPrimaryMouseClick || insignificantMetaClick) {\n          return e.stopImmediatePropagation();\n        }\n      };\n\n    }).call(this);\n    (function() {\n      var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n\n      fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n      if ((typeof jQuery !== \"undefined\" && jQuery !== null) && (jQuery.ajax != null)) {\n        if (jQuery.rails) {\n          throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n        }\n        jQuery.rails = Rails;\n        jQuery.ajaxPrefilter(function(options, originalOptions, xhr) {\n          if (!options.crossDomain) {\n            return CSRFProtection(xhr);\n          }\n        });\n      }\n\n      Rails.start = function() {\n        if (window._rails_loaded) {\n          throw new Error('rails-ujs has already been loaded!');\n        }\n        window.addEventListener('pageshow', function() {\n          $(Rails.formEnableSelector).forEach(function(el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n          return $(Rails.linkDisableSelector).forEach(function(el) {\n            if (getData(el, 'ujs:disabled')) {\n              return enableElement(el);\n            }\n          });\n        });\n        delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n        delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n        delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.linkClickSelector, 'click', disableElement);\n        delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n        delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n        delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n        delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n        delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n        delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n        delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n        delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n        delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n        delegate(document, Rails.formSubmitSelector, 'submit', function(e) {\n          return setTimeout((function() {\n            return disableElement(e);\n          }), 13);\n        });\n        delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n        delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n        delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n        delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n        delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n        delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n        document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n        document.addEventListener('DOMContentLoaded', loadCSPNonce);\n        return window._rails_loaded = true;\n      };\n\n      if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n        Rails.start();\n      }\n\n    }).call(this);\n  }).call(this);\n\n  if (typeof module === \"object\" && module.exports) {\n    module.exports = Rails;\n  } else if (typeof define === \"function\" && define.amd) {\n    define(Rails);\n  }\n}).call(this);\n", "/*!\n * accounting.js v0.4.1\n * Copyright 2014 Open Exchange Rates\n *\n * Freely distributable under the MIT license.\n * Portions of accounting.js are inspired or borrowed from underscore.js\n *\n * Full details and documentation:\n * http://openexchangerates.github.io/accounting.js/\n */\n\n(function(root, undefined) {\n\n\t/* --- Setup --- */\n\n\t// Create the local library object, to be exported or referenced globally later\n\tvar lib = {};\n\n\t// Current version\n\tlib.version = '0.4.1';\n\n\n\t/* --- Exposed settings --- */\n\n\t// The library's settings configuration object. Contains default parameters for\n\t// currency and number formatting\n\tlib.settings = {\n\t\tcurrency: {\n\t\t\tsymbol : \"$\",\t\t// default currency symbol is '$'\n\t\t\tformat : \"%s%v\",\t// controls output: %s = symbol, %v = value (can be object, see docs)\n\t\t\tdecimal : \".\",\t\t// decimal point separator\n\t\t\tthousand : \",\",\t\t// thousands separator\n\t\t\tprecision : 2,\t\t// decimal places\n\t\t\tgrouping : 3\t\t// digit grouping (not implemented yet)\n\t\t},\n\t\tnumber: {\n\t\t\tprecision : 0,\t\t// default precision on numbers is 0\n\t\t\tgrouping : 3,\t\t// digit grouping (not implemented yet)\n\t\t\tthousand : \",\",\n\t\t\tdecimal : \".\"\n\t\t}\n\t};\n\n\n\t/* --- Internal Helper Methods --- */\n\n\t// Store reference to possibly-available ECMAScript 5 methods for later\n\tvar nativeMap = Array.prototype.map,\n\t\tnativeIsArray = Array.isArray,\n\t\ttoString = Object.prototype.toString;\n\n\t/**\n\t * Tests whether supplied parameter is a string\n\t * from underscore.js\n\t */\n\tfunction isString(obj) {\n\t\treturn !!(obj === '' || (obj && obj.charCodeAt && obj.substr));\n\t}\n\n\t/**\n\t * Tests whether supplied parameter is a string\n\t * from underscore.js, delegates to ECMA5's native Array.isArray\n\t */\n\tfunction isArray(obj) {\n\t\treturn nativeIsArray ? nativeIsArray(obj) : toString.call(obj) === '[object Array]';\n\t}\n\n\t/**\n\t * Tests whether supplied parameter is a true object\n\t */\n\tfunction isObject(obj) {\n\t\treturn obj && toString.call(obj) === '[object Object]';\n\t}\n\n\t/**\n\t * Extends an object with a defaults object, similar to underscore's _.defaults\n\t *\n\t * Used for abstracting parameter handling from API methods\n\t */\n\tfunction defaults(object, defs) {\n\t\tvar key;\n\t\tobject = object || {};\n\t\tdefs = defs || {};\n\t\t// Iterate over object non-prototype properties:\n\t\tfor (key in defs) {\n\t\t\tif (defs.hasOwnProperty(key)) {\n\t\t\t\t// Replace values with defaults only if undefined (allow empty/zero values):\n\t\t\t\tif (object[key] == null) object[key] = defs[key];\n\t\t\t}\n\t\t}\n\t\treturn object;\n\t}\n\n\t/**\n\t * Implementation of `Array.map()` for iteration loops\n\t *\n\t * Returns a new Array as a result of calling `iterator` on each array value.\n\t * Defers to native Array.map if available\n\t */\n\tfunction map(obj, iterator, context) {\n\t\tvar results = [], i, j;\n\n\t\tif (!obj) return results;\n\n\t\t// Use native .map method if it exists:\n\t\tif (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);\n\n\t\t// Fallback for native .map:\n\t\tfor (i = 0, j = obj.length; i < j; i++ ) {\n\t\t\tresults[i] = iterator.call(context, obj[i], i, obj);\n\t\t}\n\t\treturn results;\n\t}\n\n\t/**\n\t * Check and normalise the value of precision (must be positive integer)\n\t */\n\tfunction checkPrecision(val, base) {\n\t\tval = Math.round(Math.abs(val));\n\t\treturn isNaN(val)? base : val;\n\t}\n\n\n\t/**\n\t * Parses a format string or object and returns format obj for use in rendering\n\t *\n\t * `format` is either a string with the default (positive) format, or object\n\t * containing `pos` (required), `neg` and `zero` values (or a function returning\n\t * either a string or object)\n\t *\n\t * Either string or format.pos must contain \"%v\" (value) to be valid\n\t */\n\tfunction checkCurrencyFormat(format) {\n\t\tvar defaults = lib.settings.currency.format;\n\n\t\t// Allow function as format parameter (should return string or object):\n\t\tif ( typeof format === \"function\" ) format = format();\n\n\t\t// Format can be a string, in which case `value` (\"%v\") must be present:\n\t\tif ( isString( format ) && format.match(\"%v\") ) {\n\n\t\t\t// Create and return positive, negative and zero formats:\n\t\t\treturn {\n\t\t\t\tpos : format,\n\t\t\t\tneg : format.replace(\"-\", \"\").replace(\"%v\", \"-%v\"),\n\t\t\t\tzero : format\n\t\t\t};\n\n\t\t// If no format, or object is missing valid positive value, use defaults:\n\t\t} else if ( !format || !format.pos || !format.pos.match(\"%v\") ) {\n\n\t\t\t// If defaults is a string, casts it to an object for faster checking next time:\n\t\t\treturn ( !isString( defaults ) ) ? defaults : lib.settings.currency.format = {\n\t\t\t\tpos : defaults,\n\t\t\t\tneg : defaults.replace(\"%v\", \"-%v\"),\n\t\t\t\tzero : defaults\n\t\t\t};\n\n\t\t}\n\t\t// Otherwise, assume format was fine:\n\t\treturn format;\n\t}\n\n\n\t/* --- API Methods --- */\n\n\t/**\n\t * Takes a string/array of strings, removes all formatting/cruft and returns the raw float value\n\t * Alias: `accounting.parse(string)`\n\t *\n\t * Decimal must be included in the regular expression to match floats (defaults to\n\t * accounting.settings.number.decimal), so if the number uses a non-standard decimal \n\t * separator, provide it as the second argument.\n\t *\n\t * Also matches bracketed negatives (eg. \"$ (1.99)\" => -1.99)\n\t *\n\t * Doesn't throw any errors (`NaN`s become 0) but this may change in future\n\t */\n\tvar unformat = lib.unformat = lib.parse = function(value, decimal) {\n\t\t// Recursively unformat arrays:\n\t\tif (isArray(value)) {\n\t\t\treturn map(value, function(val) {\n\t\t\t\treturn unformat(val, decimal);\n\t\t\t});\n\t\t}\n\n\t\t// Fails silently (need decent errors):\n\t\tvalue = value || 0;\n\n\t\t// Return the value as-is if it's already a number:\n\t\tif (typeof value === \"number\") return value;\n\n\t\t// Default decimal point comes from settings, but could be set to eg. \",\" in opts:\n\t\tdecimal = decimal || lib.settings.number.decimal;\n\n\t\t // Build regex to strip out everything except digits, decimal point and minus sign:\n\t\tvar regex = new RegExp(\"[^0-9-\" + decimal + \"]\", [\"g\"]),\n\t\t\tunformatted = parseFloat(\n\t\t\t\t(\"\" + value)\n\t\t\t\t.replace(/\\((.*)\\)/, \"-$1\") // replace bracketed values with negatives\n\t\t\t\t.replace(regex, '')         // strip out any cruft\n\t\t\t\t.replace(decimal, '.')      // make sure decimal point is standard\n\t\t\t);\n\n\t\t// This will fail silently which may cause trouble, let's wait and see:\n\t\treturn !isNaN(unformatted) ? unformatted : 0;\n\t};\n\n\n\t/**\n\t * Implementation of toFixed() that treats floats more like decimals\n\t *\n\t * Fixes binary rounding issues (eg. (0.615).toFixed(2) === \"0.61\") that present\n\t * problems for accounting- and finance-related software.\n\t */\n\tvar toFixed = lib.toFixed = function(value, precision) {\n\t\tprecision = checkPrecision(precision, lib.settings.number.precision);\n\t\tvar power = Math.pow(10, precision);\n\n\t\t// Multiply up by precision, round accurately, then divide and use native toFixed():\n\t\treturn (Math.round(lib.unformat(value) * power) / power).toFixed(precision);\n\t};\n\n\n\t/**\n\t * Format a number, with comma-separated thousands and custom precision/decimal places\n\t * Alias: `accounting.format()`\n\t *\n\t * Localise by overriding the precision and thousand / decimal separators\n\t * 2nd parameter `precision` can be an object matching `settings.number`\n\t */\n\tvar formatNumber = lib.formatNumber = lib.format = function(number, precision, thousand, decimal) {\n\t\t// Resursively format arrays:\n\t\tif (isArray(number)) {\n\t\t\treturn map(number, function(val) {\n\t\t\t\treturn formatNumber(val, precision, thousand, decimal);\n\t\t\t});\n\t\t}\n\n\t\t// Clean up number:\n\t\tnumber = unformat(number);\n\n\t\t// Build options object from second param (if object) or all params, extending defaults:\n\t\tvar opts = defaults(\n\t\t\t\t(isObject(precision) ? precision : {\n\t\t\t\t\tprecision : precision,\n\t\t\t\t\tthousand : thousand,\n\t\t\t\t\tdecimal : decimal\n\t\t\t\t}),\n\t\t\t\tlib.settings.number\n\t\t\t),\n\n\t\t\t// Clean up precision\n\t\t\tusePrecision = checkPrecision(opts.precision),\n\n\t\t\t// Do some calc:\n\t\t\tnegative = number < 0 ? \"-\" : \"\",\n\t\t\tbase = parseInt(toFixed(Math.abs(number || 0), usePrecision), 10) + \"\",\n\t\t\tmod = base.length > 3 ? base.length % 3 : 0;\n\n\t\t// Format the number:\n\t\treturn negative + (mod ? base.substr(0, mod) + opts.thousand : \"\") + base.substr(mod).replace(/(\\d{3})(?=\\d)/g, \"$1\" + opts.thousand) + (usePrecision ? opts.decimal + toFixed(Math.abs(number), usePrecision).split('.')[1] : \"\");\n\t};\n\n\n\t/**\n\t * Format a number into currency\n\t *\n\t * Usage: accounting.formatMoney(number, symbol, precision, thousandsSep, decimalSep, format)\n\t * defaults: (0, \"$\", 2, \",\", \".\", \"%s%v\")\n\t *\n\t * Localise by overriding the symbol, precision, thousand / decimal separators and format\n\t * Second param can be an object matching `settings.currency` which is the easiest way.\n\t *\n\t * To do: tidy up the parameters\n\t */\n\tvar formatMoney = lib.formatMoney = function(number, symbol, precision, thousand, decimal, format) {\n\t\t// Resursively format arrays:\n\t\tif (isArray(number)) {\n\t\t\treturn map(number, function(val){\n\t\t\t\treturn formatMoney(val, symbol, precision, thousand, decimal, format);\n\t\t\t});\n\t\t}\n\n\t\t// Clean up number:\n\t\tnumber = unformat(number);\n\n\t\t// Build options object from second param (if object) or all params, extending defaults:\n\t\tvar opts = defaults(\n\t\t\t\t(isObject(symbol) ? symbol : {\n\t\t\t\t\tsymbol : symbol,\n\t\t\t\t\tprecision : precision,\n\t\t\t\t\tthousand : thousand,\n\t\t\t\t\tdecimal : decimal,\n\t\t\t\t\tformat : format\n\t\t\t\t}),\n\t\t\t\tlib.settings.currency\n\t\t\t),\n\n\t\t\t// Check format (returns object with pos, neg and zero):\n\t\t\tformats = checkCurrencyFormat(opts.format),\n\n\t\t\t// Choose which format to use for this value:\n\t\t\tuseFormat = number > 0 ? formats.pos : number < 0 ? formats.neg : formats.zero;\n\n\t\t// Return with currency symbol added:\n\t\treturn useFormat.replace('%s', opts.symbol).replace('%v', formatNumber(Math.abs(number), checkPrecision(opts.precision), opts.thousand, opts.decimal));\n\t};\n\n\n\t/**\n\t * Format a list of numbers into an accounting column, padding with whitespace\n\t * to line up currency symbols, thousand separators and decimals places\n\t *\n\t * List should be an array of numbers\n\t * Second parameter can be an object containing keys that match the params\n\t *\n\t * Returns array of accouting-formatted number strings of same length\n\t *\n\t * NB: `white-space:pre` CSS rule is required on the list container to prevent\n\t * browsers from collapsing the whitespace in the output strings.\n\t */\n\tlib.formatColumn = function(list, symbol, precision, thousand, decimal, format) {\n\t\tif (!list) return [];\n\n\t\t// Build options object from second param (if object) or all params, extending defaults:\n\t\tvar opts = defaults(\n\t\t\t\t(isObject(symbol) ? symbol : {\n\t\t\t\t\tsymbol : symbol,\n\t\t\t\t\tprecision : precision,\n\t\t\t\t\tthousand : thousand,\n\t\t\t\t\tdecimal : decimal,\n\t\t\t\t\tformat : format\n\t\t\t\t}),\n\t\t\t\tlib.settings.currency\n\t\t\t),\n\n\t\t\t// Check format (returns object with pos, neg and zero), only need pos for now:\n\t\t\tformats = checkCurrencyFormat(opts.format),\n\n\t\t\t// Whether to pad at start of string or after currency symbol:\n\t\t\tpadAfterSymbol = formats.pos.indexOf(\"%s\") < formats.pos.indexOf(\"%v\") ? true : false,\n\n\t\t\t// Store value for the length of the longest string in the column:\n\t\t\tmaxLength = 0,\n\n\t\t\t// Format the list according to options, store the length of the longest string:\n\t\t\tformatted = map(list, function(val, i) {\n\t\t\t\tif (isArray(val)) {\n\t\t\t\t\t// Recursively format columns if list is a multi-dimensional array:\n\t\t\t\t\treturn lib.formatColumn(val, opts);\n\t\t\t\t} else {\n\t\t\t\t\t// Clean up the value\n\t\t\t\t\tval = unformat(val);\n\n\t\t\t\t\t// Choose which format to use for this value (pos, neg or zero):\n\t\t\t\t\tvar useFormat = val > 0 ? formats.pos : val < 0 ? formats.neg : formats.zero,\n\n\t\t\t\t\t\t// Format this value, push into formatted list and save the length:\n\t\t\t\t\t\tfVal = useFormat.replace('%s', opts.symbol).replace('%v', formatNumber(Math.abs(val), checkPrecision(opts.precision), opts.thousand, opts.decimal));\n\n\t\t\t\t\tif (fVal.length > maxLength) maxLength = fVal.length;\n\t\t\t\t\treturn fVal;\n\t\t\t\t}\n\t\t\t});\n\n\t\t// Pad each number in the list and send back the column of numbers:\n\t\treturn map(formatted, function(val, i) {\n\t\t\t// Only if this is a string (not a nested array, which would have already been padded):\n\t\t\tif (isString(val) && val.length < maxLength) {\n\t\t\t\t// Depending on symbol position, pad after symbol or at index 0:\n\t\t\t\treturn padAfterSymbol ? val.replace(opts.symbol, opts.symbol+(new Array(maxLength - val.length + 1).join(\" \"))) : (new Array(maxLength - val.length + 1).join(\" \")) + val;\n\t\t\t}\n\t\t\treturn val;\n\t\t});\n\t};\n\n\n\t/* --- Module Definition --- */\n\n\t// Export accounting for CommonJS. If being loaded as an AMD module, define it as such.\n\t// Otherwise, just add `accounting` to the global object\n\tif (typeof exports !== 'undefined') {\n\t\tif (typeof module !== 'undefined' && module.exports) {\n\t\t\texports = module.exports = lib;\n\t\t}\n\t\texports.accounting = lib;\n\t} else if (typeof define === 'function' && define.amd) {\n\t\t// Return the library as an AMD module:\n\t\tdefine([], function() {\n\t\t\treturn lib;\n\t\t});\n\t} else {\n\t\t// Use accounting.noConflict to restore `accounting` back to its original value.\n\t\t// Returns a reference to the library's `accounting` object;\n\t\t// e.g. `var numbers = accounting.noConflict();`\n\t\tlib.noConflict = (function(oldAccounting) {\n\t\t\treturn function() {\n\t\t\t\t// Reset the value of the root's `accounting` variable:\n\t\t\t\troot.accounting = oldAccounting;\n\t\t\t\t// Delete the noConflict method:\n\t\t\t\tlib.noConflict = undefined;\n\t\t\t\t// Return reference to the library to re-assign it:\n\t\t\t\treturn lib;\n\t\t\t};\n\t\t})(root.accounting);\n\n\t\t// Declare `fx` on the root (global/window) object:\n\t\troot['accounting'] = lib;\n\t}\n\n\t// Root will be `window` in browser or `global` on the server:\n}(this));\n", ";(function () {\r\n    var VERSION = '2.2.3',\r\n        pluginName = 'datepicker',\r\n        autoInitSelector = '.datepicker-here',\r\n        $body, $datepickersContainer,\r\n        containerBuilt = false,\r\n        baseTemplate = '' +\r\n            '<div class=\"datepicker\">' +\r\n            '<i class=\"datepicker--pointer\"></i>' +\r\n            '<nav class=\"datepicker--nav\"></nav>' +\r\n            '<div class=\"datepicker--content\"></div>' +\r\n            '</div>',\r\n        defaults = {\r\n            classes: '',\r\n            inline: false,\r\n            language: 'ru',\r\n            startDate: new Date(),\r\n            firstDay: '',\r\n            weekends: [6, 0],\r\n            dateFormat: '',\r\n            altField: '',\r\n            altFieldDateFormat: '@',\r\n            toggleSelected: true,\r\n            keyboardNav: true,\r\n\r\n            position: 'bottom left',\r\n            offset: 12,\r\n\r\n            view: 'days',\r\n            minView: 'days',\r\n\r\n            showOtherMonths: true,\r\n            selectOtherMonths: true,\r\n            moveToOtherMonthsOnSelect: true,\r\n\r\n            showOtherYears: true,\r\n            selectOtherYears: true,\r\n            moveToOtherYearsOnSelect: true,\r\n\r\n            minDate: '',\r\n            maxDate: '',\r\n            disableNavWhenOutOfRange: true,\r\n\r\n            multipleDates: false, // Boolean or Number\r\n            multipleDatesSeparator: ',',\r\n            range: false,\r\n\r\n            todayButton: false,\r\n            clearButton: false,\r\n\r\n            showEvent: 'focus',\r\n            autoClose: false,\r\n\r\n            // navigation\r\n            monthsField: 'monthsShort',\r\n            prevHtml: '<svg><path d=\"M 17,12 l -5,5 l 5,5\"></path></svg>',\r\n            nextHtml: '<svg><path d=\"M 14,12 l 5,5 l -5,5\"></path></svg>',\r\n            navTitles: {\r\n                days: 'MM, <i>yyyy</i>',\r\n                months: 'yyyy',\r\n                years: 'yyyy1 - yyyy2'\r\n            },\r\n\r\n            // timepicker\r\n            timepicker: false,\r\n            onlyTimepicker: false,\r\n            dateTimeSeparator: ' ',\r\n            timeFormat: '',\r\n            minHours: 0,\r\n            maxHours: 24,\r\n            minMinutes: 0,\r\n            maxMinutes: 59,\r\n            hoursStep: 1,\r\n            minutesStep: 1,\r\n\r\n            // events\r\n            onSelect: '',\r\n            onShow: '',\r\n            onHide: '',\r\n            onChangeMonth: '',\r\n            onChangeYear: '',\r\n            onChangeDecade: '',\r\n            onChangeView: '',\r\n            onRenderCell: ''\r\n        },\r\n        hotKeys = {\r\n            'ctrlRight': [17, 39],\r\n            'ctrlUp': [17, 38],\r\n            'ctrlLeft': [17, 37],\r\n            'ctrlDown': [17, 40],\r\n            'shiftRight': [16, 39],\r\n            'shiftUp': [16, 38],\r\n            'shiftLeft': [16, 37],\r\n            'shiftDown': [16, 40],\r\n            'altUp': [18, 38],\r\n            'altRight': [18, 39],\r\n            'altLeft': [18, 37],\r\n            'altDown': [18, 40],\r\n            'ctrlShiftUp': [16, 17, 38]\r\n        },\r\n        datepicker;\r\n\r\n    var Datepicker  = function (el, options) {\r\n        this.el = el;\r\n        this.$el = $(el);\r\n\r\n        this.opts = $.extend(true, {}, defaults, options, this.$el.data());\r\n\r\n        if ($body == undefined) {\r\n            $body = $('body');\r\n        }\r\n\r\n        if (!this.opts.startDate) {\r\n            this.opts.startDate = new Date();\r\n        }\r\n\r\n        if (this.el.nodeName == 'INPUT') {\r\n            this.elIsInput = true;\r\n        }\r\n\r\n        if (this.opts.altField) {\r\n            this.$altField = typeof this.opts.altField == 'string' ? $(this.opts.altField) : this.opts.altField;\r\n        }\r\n\r\n        this.inited = false;\r\n        this.visible = false;\r\n        this.silent = false; // Need to prevent unnecessary rendering\r\n\r\n        this.currentDate = this.opts.startDate;\r\n        this.currentView = this.opts.view;\r\n        this._createShortCuts();\r\n        this.selectedDates = [];\r\n        this.views = {};\r\n        this.keys = [];\r\n        this.minRange = '';\r\n        this.maxRange = '';\r\n        this._prevOnSelectValue = '';\r\n\r\n        this.init()\r\n    };\r\n\r\n    datepicker = Datepicker;\r\n\r\n    datepicker.prototype = {\r\n        VERSION: VERSION,\r\n        viewIndexes: ['days', 'months', 'years'],\r\n\r\n        init: function () {\r\n            if (!containerBuilt && !this.opts.inline && this.elIsInput) {\r\n                this._buildDatepickersContainer();\r\n            }\r\n            this._buildBaseHtml();\r\n            this._defineLocale(this.opts.language);\r\n            this._syncWithMinMaxDates();\r\n\r\n            if (this.elIsInput) {\r\n                if (!this.opts.inline) {\r\n                    // Set extra classes for proper transitions\r\n                    this._setPositionClasses(this.opts.position);\r\n                    this._bindEvents()\r\n                }\r\n                if (this.opts.keyboardNav && !this.opts.onlyTimepicker) {\r\n                    this._bindKeyboardEvents();\r\n                }\r\n                this.$datepicker.on('mousedown', this._onMouseDownDatepicker.bind(this));\r\n                this.$datepicker.on('mouseup', this._onMouseUpDatepicker.bind(this));\r\n            }\r\n\r\n            if (this.opts.classes) {\r\n                this.$datepicker.addClass(this.opts.classes)\r\n            }\r\n\r\n            if (this.opts.timepicker) {\r\n                this.timepicker = new $.fn.datepicker.Timepicker(this, this.opts);\r\n                this._bindTimepickerEvents();\r\n            }\r\n\r\n            if (this.opts.onlyTimepicker) {\r\n                this.$datepicker.addClass('-only-timepicker-');\r\n            }\r\n\r\n            this.views[this.currentView] = new $.fn.datepicker.Body(this, this.currentView, this.opts);\r\n            this.views[this.currentView].show();\r\n            this.nav = new $.fn.datepicker.Navigation(this, this.opts);\r\n            this.view = this.currentView;\r\n\r\n            this.$el.on('clickCell.adp', this._onClickCell.bind(this));\r\n            this.$datepicker.on('mouseenter', '.datepicker--cell', this._onMouseEnterCell.bind(this));\r\n            this.$datepicker.on('mouseleave', '.datepicker--cell', this._onMouseLeaveCell.bind(this));\r\n\r\n            this.inited = true;\r\n        },\r\n\r\n        _createShortCuts: function () {\r\n            this.minDate = this.opts.minDate ? this.opts.minDate : new Date(-8639999913600000);\r\n            this.maxDate = this.opts.maxDate ? this.opts.maxDate : new Date(8639999913600000);\r\n        },\r\n\r\n        _bindEvents : function () {\r\n            this.$el.on(this.opts.showEvent + '.adp', this._onShowEvent.bind(this));\r\n            this.$el.on('mouseup.adp', this._onMouseUpEl.bind(this));\r\n            this.$el.on('blur.adp', this._onBlur.bind(this));\r\n            this.$el.on('keyup.adp', this._onKeyUpGeneral.bind(this));\r\n            $(window).on('resize.adp', this._onResize.bind(this));\r\n            $('body').on('mouseup.adp', this._onMouseUpBody.bind(this));\r\n        },\r\n\r\n        _bindKeyboardEvents: function () {\r\n            this.$el.on('keydown.adp', this._onKeyDown.bind(this));\r\n            this.$el.on('keyup.adp', this._onKeyUp.bind(this));\r\n            this.$el.on('hotKey.adp', this._onHotKey.bind(this));\r\n        },\r\n\r\n        _bindTimepickerEvents: function () {\r\n            this.$el.on('timeChange.adp', this._onTimeChange.bind(this));\r\n        },\r\n\r\n        isWeekend: function (day) {\r\n            return this.opts.weekends.indexOf(day) !== -1;\r\n        },\r\n\r\n        _defineLocale: function (lang) {\r\n            if (typeof lang == 'string') {\r\n                this.loc = $.fn.datepicker.language[lang];\r\n                if (!this.loc) {\r\n                    console.warn('Can\\'t find language \"' + lang + '\" in Datepicker.language, will use \"ru\" instead');\r\n                    this.loc = $.extend(true, {}, $.fn.datepicker.language.ru)\r\n                }\r\n\r\n                this.loc = $.extend(true, {}, $.fn.datepicker.language.ru, $.fn.datepicker.language[lang])\r\n            } else {\r\n                this.loc = $.extend(true, {}, $.fn.datepicker.language.ru, lang)\r\n            }\r\n\r\n            if (this.opts.dateFormat) {\r\n                this.loc.dateFormat = this.opts.dateFormat\r\n            }\r\n\r\n            if (this.opts.timeFormat) {\r\n                this.loc.timeFormat = this.opts.timeFormat\r\n            }\r\n\r\n            if (this.opts.firstDay !== '') {\r\n                this.loc.firstDay = this.opts.firstDay\r\n            }\r\n\r\n            if (this.opts.timepicker) {\r\n                this.loc.dateFormat = [this.loc.dateFormat, this.loc.timeFormat].join(this.opts.dateTimeSeparator);\r\n            }\r\n\r\n            if (this.opts.onlyTimepicker) {\r\n                this.loc.dateFormat = this.loc.timeFormat;\r\n            }\r\n\r\n            var boundary = this._getWordBoundaryRegExp;\r\n            if (this.loc.timeFormat.match(boundary('aa')) ||\r\n                this.loc.timeFormat.match(boundary('AA'))\r\n            ) {\r\n               this.ampm = true;\r\n            }\r\n        },\r\n\r\n        _buildDatepickersContainer: function () {\r\n            containerBuilt = true;\r\n            $body.append('<div class=\"datepickers-container\" id=\"datepickers-container\"></div>');\r\n            $datepickersContainer = $('#datepickers-container');\r\n        },\r\n\r\n        _buildBaseHtml: function () {\r\n            var $appendTarget,\r\n                $inline = $('<div class=\"datepicker-inline\">');\r\n\r\n            if(this.el.nodeName == 'INPUT') {\r\n                if (!this.opts.inline) {\r\n                    $appendTarget = $datepickersContainer;\r\n                } else {\r\n                    $appendTarget = $inline.insertAfter(this.$el)\r\n                }\r\n            } else {\r\n                $appendTarget = $inline.appendTo(this.$el)\r\n            }\r\n\r\n            this.$datepicker = $(baseTemplate).appendTo($appendTarget);\r\n            this.$content = $('.datepicker--content', this.$datepicker);\r\n            this.$nav = $('.datepicker--nav', this.$datepicker);\r\n        },\r\n\r\n        _triggerOnChange: function () {\r\n            if (!this.selectedDates.length) {\r\n                // Prevent from triggering multiple onSelect callback with same argument (empty string) in IE10-11\r\n                if (this._prevOnSelectValue === '') return;\r\n                this._prevOnSelectValue = '';\r\n                return this.opts.onSelect('', '', this);\r\n            }\r\n\r\n            var selectedDates = this.selectedDates,\r\n                parsedSelected = datepicker.getParsedDate(selectedDates[0]),\r\n                formattedDates,\r\n                _this = this,\r\n                dates = new Date(\r\n                    parsedSelected.year,\r\n                    parsedSelected.month,\r\n                    parsedSelected.date,\r\n                    parsedSelected.hours,\r\n                    parsedSelected.minutes\r\n                );\r\n\r\n                formattedDates = selectedDates.map(function (date) {\r\n                    return _this.formatDate(_this.loc.dateFormat, date)\r\n                }).join(this.opts.multipleDatesSeparator);\r\n\r\n            // Create new dates array, to separate it from original selectedDates\r\n            if (this.opts.multipleDates || this.opts.range) {\r\n                dates = selectedDates.map(function(date) {\r\n                    var parsedDate = datepicker.getParsedDate(date);\r\n                    return new Date(\r\n                        parsedDate.year,\r\n                        parsedDate.month,\r\n                        parsedDate.date,\r\n                        parsedDate.hours,\r\n                        parsedDate.minutes\r\n                    );\r\n                })\r\n            }\r\n\r\n            this._prevOnSelectValue = formattedDates;\r\n            this.opts.onSelect(formattedDates, dates, this);\r\n        },\r\n\r\n        next: function () {\r\n            var d = this.parsedDate,\r\n                o = this.opts;\r\n            switch (this.view) {\r\n                case 'days':\r\n                    this.date = new Date(d.year, d.month + 1, 1);\r\n                    if (o.onChangeMonth) o.onChangeMonth(this.parsedDate.month, this.parsedDate.year);\r\n                    break;\r\n                case 'months':\r\n                    this.date = new Date(d.year + 1, d.month, 1);\r\n                    if (o.onChangeYear) o.onChangeYear(this.parsedDate.year);\r\n                    break;\r\n                case 'years':\r\n                    this.date = new Date(d.year + 10, 0, 1);\r\n                    if (o.onChangeDecade) o.onChangeDecade(this.curDecade);\r\n                    break;\r\n            }\r\n        },\r\n\r\n        prev: function () {\r\n            var d = this.parsedDate,\r\n                o = this.opts;\r\n            switch (this.view) {\r\n                case 'days':\r\n                    this.date = new Date(d.year, d.month - 1, 1);\r\n                    if (o.onChangeMonth) o.onChangeMonth(this.parsedDate.month, this.parsedDate.year);\r\n                    break;\r\n                case 'months':\r\n                    this.date = new Date(d.year - 1, d.month, 1);\r\n                    if (o.onChangeYear) o.onChangeYear(this.parsedDate.year);\r\n                    break;\r\n                case 'years':\r\n                    this.date = new Date(d.year - 10, 0, 1);\r\n                    if (o.onChangeDecade) o.onChangeDecade(this.curDecade);\r\n                    break;\r\n            }\r\n        },\r\n\r\n        formatDate: function (string, date) {\r\n            date = date || this.date;\r\n            var result = string,\r\n                boundary = this._getWordBoundaryRegExp,\r\n                locale = this.loc,\r\n                leadingZero = datepicker.getLeadingZeroNum,\r\n                decade = datepicker.getDecade(date),\r\n                d = datepicker.getParsedDate(date),\r\n                fullHours = d.fullHours,\r\n                hours = d.hours,\r\n                ampm = string.match(boundary('aa')) || string.match(boundary('AA')),\r\n                dayPeriod = 'am',\r\n                replacer = this._replacer,\r\n                validHours;\r\n\r\n            if (this.opts.timepicker && this.timepicker && ampm) {\r\n                validHours = this.timepicker._getValidHoursFromDate(date, ampm);\r\n                fullHours = leadingZero(validHours.hours);\r\n                hours = validHours.hours;\r\n                dayPeriod = validHours.dayPeriod;\r\n            }\r\n\r\n            switch (true) {\r\n                case /@/.test(result):\r\n                    result = result.replace(/@/, date.getTime());\r\n                case /aa/.test(result):\r\n                    result = replacer(result, boundary('aa'), dayPeriod);\r\n                case /AA/.test(result):\r\n                    result = replacer(result, boundary('AA'), dayPeriod.toUpperCase());\r\n                case /dd/.test(result):\r\n                    result = replacer(result, boundary('dd'), d.fullDate);\r\n                case /d/.test(result):\r\n                    result = replacer(result, boundary('d'), d.date);\r\n                case /DD/.test(result):\r\n                    result = replacer(result, boundary('DD'), locale.days[d.day]);\r\n                case /D/.test(result):\r\n                    result = replacer(result, boundary('D'), locale.daysShort[d.day]);\r\n                case /mm/.test(result):\r\n                    result = replacer(result, boundary('mm'), d.fullMonth);\r\n                case /m/.test(result):\r\n                    result = replacer(result, boundary('m'), d.month + 1);\r\n                case /MM/.test(result):\r\n                    result = replacer(result, boundary('MM'), this.loc.months[d.month]);\r\n                case /M/.test(result):\r\n                    result = replacer(result, boundary('M'), locale.monthsShort[d.month]);\r\n                case /ii/.test(result):\r\n                    result = replacer(result, boundary('ii'), d.fullMinutes);\r\n                case /i/.test(result):\r\n                    result = replacer(result, boundary('i'), d.minutes);\r\n                case /hh/.test(result):\r\n                    result = replacer(result, boundary('hh'), fullHours);\r\n                case /h/.test(result):\r\n                    result = replacer(result, boundary('h'), hours);\r\n                case /yyyy/.test(result):\r\n                    result = replacer(result, boundary('yyyy'), d.year);\r\n                case /yyyy1/.test(result):\r\n                    result = replacer(result, boundary('yyyy1'), decade[0]);\r\n                case /yyyy2/.test(result):\r\n                    result = replacer(result, boundary('yyyy2'), decade[1]);\r\n                case /yy/.test(result):\r\n                    result = replacer(result, boundary('yy'), d.year.toString().slice(-2));\r\n            }\r\n\r\n            return result;\r\n        },\r\n\r\n        _replacer: function (str, reg, data) {\r\n            return str.replace(reg, function (match, p1,p2,p3) {\r\n                return p1 + data + p3;\r\n            })\r\n        },\r\n\r\n        _getWordBoundaryRegExp: function (sign) {\r\n            var symbols = '\\\\s|\\\\.|-|/|\\\\\\\\|,|\\\\$|\\\\!|\\\\?|:|;';\r\n\r\n            return new RegExp('(^|>|' + symbols + ')(' + sign + ')($|<|' + symbols + ')', 'g');\r\n        },\r\n\r\n\r\n        selectDate: function (date) {\r\n            var _this = this,\r\n                opts = _this.opts,\r\n                d = _this.parsedDate,\r\n                selectedDates = _this.selectedDates,\r\n                len = selectedDates.length,\r\n                newDate = '';\r\n\r\n            if (Array.isArray(date)) {\r\n                date.forEach(function (d) {\r\n                    _this.selectDate(d)\r\n                });\r\n                return;\r\n            }\r\n\r\n            if (!(date instanceof Date)) return;\r\n\r\n            this.lastSelectedDate = date;\r\n\r\n            // Set new time values from Date\r\n            if (this.timepicker) {\r\n                this.timepicker._setTime(date);\r\n            }\r\n\r\n            // On this step timepicker will set valid values in it's instance\r\n            _this._trigger('selectDate', date);\r\n\r\n            // Set correct time values after timepicker's validation\r\n            // Prevent from setting hours or minutes which values are lesser then `min` value or\r\n            // greater then `max` value\r\n            if (this.timepicker) {\r\n                date.setHours(this.timepicker.hours);\r\n                date.setMinutes(this.timepicker.minutes)\r\n            }\r\n\r\n            if (_this.view == 'days') {\r\n                if (date.getMonth() != d.month && opts.moveToOtherMonthsOnSelect) {\r\n                    newDate = new Date(date.getFullYear(), date.getMonth(), 1);\r\n                }\r\n            }\r\n\r\n            if (_this.view == 'years') {\r\n                if (date.getFullYear() != d.year && opts.moveToOtherYearsOnSelect) {\r\n                    newDate = new Date(date.getFullYear(), 0, 1);\r\n                }\r\n            }\r\n\r\n            if (newDate) {\r\n                _this.silent = true;\r\n                _this.date = newDate;\r\n                _this.silent = false;\r\n                _this.nav._render()\r\n            }\r\n\r\n            if (opts.multipleDates && !opts.range) { // Set priority to range functionality\r\n                if (len === opts.multipleDates) return;\r\n                if (!_this._isSelected(date)) {\r\n                    _this.selectedDates.push(date);\r\n                }\r\n            } else if (opts.range) {\r\n                if (len == 2) {\r\n                    _this.selectedDates = [date];\r\n                    _this.minRange = date;\r\n                    _this.maxRange = '';\r\n                } else if (len == 1) {\r\n                    _this.selectedDates.push(date);\r\n                    if (!_this.maxRange){\r\n                        _this.maxRange = date;\r\n                    } else {\r\n                        _this.minRange = date;\r\n                    }\r\n                    // Swap dates if they were selected via dp.selectDate() and second date was smaller then first\r\n                    if (datepicker.bigger(_this.maxRange, _this.minRange)) {\r\n                        _this.maxRange = _this.minRange;\r\n                        _this.minRange = date;\r\n                    }\r\n                    _this.selectedDates = [_this.minRange, _this.maxRange]\r\n\r\n                } else {\r\n                    _this.selectedDates = [date];\r\n                    _this.minRange = date;\r\n                }\r\n            } else {\r\n                _this.selectedDates = [date];\r\n            }\r\n\r\n            _this._setInputValue();\r\n\r\n            if (opts.onSelect) {\r\n                _this._triggerOnChange();\r\n            }\r\n\r\n            if (opts.autoClose && !this.timepickerIsActive) {\r\n                if (!opts.multipleDates && !opts.range) {\r\n                    _this.hide();\r\n                } else if (opts.range && _this.selectedDates.length == 2) {\r\n                    _this.hide();\r\n                }\r\n            }\r\n\r\n            _this.views[this.currentView]._render()\r\n        },\r\n\r\n        removeDate: function (date) {\r\n            var selected = this.selectedDates,\r\n                _this = this;\r\n\r\n            if (!(date instanceof Date)) return;\r\n\r\n            return selected.some(function (curDate, i) {\r\n                if (datepicker.isSame(curDate, date)) {\r\n                    selected.splice(i, 1);\r\n\r\n                    if (!_this.selectedDates.length) {\r\n                        _this.minRange = '';\r\n                        _this.maxRange = '';\r\n                        _this.lastSelectedDate = '';\r\n                    } else {\r\n                        _this.lastSelectedDate = _this.selectedDates[_this.selectedDates.length - 1];\r\n                    }\r\n\r\n                    _this.views[_this.currentView]._render();\r\n                    _this._setInputValue();\r\n\r\n                    if (_this.opts.onSelect) {\r\n                        _this._triggerOnChange();\r\n                    }\r\n\r\n                    return true\r\n                }\r\n            })\r\n        },\r\n\r\n        today: function () {\r\n            this.silent = true;\r\n            this.view = this.opts.minView;\r\n            this.silent = false;\r\n            this.date = new Date();\r\n\r\n            if (this.opts.todayButton instanceof Date) {\r\n                this.selectDate(this.opts.todayButton)\r\n            }\r\n        },\r\n\r\n        clear: function () {\r\n            this.selectedDates = [];\r\n            this.minRange = '';\r\n            this.maxRange = '';\r\n            this.views[this.currentView]._render();\r\n            this._setInputValue();\r\n            if (this.opts.onSelect) {\r\n                this._triggerOnChange()\r\n            }\r\n        },\r\n\r\n        /**\r\n         * Updates datepicker options\r\n         * @param {String|Object} param - parameter's name to update. If object then it will extend current options\r\n         * @param {String|Number|Object} [value] - new param value\r\n         */\r\n        update: function (param, value) {\r\n            var len = arguments.length,\r\n                lastSelectedDate = this.lastSelectedDate;\r\n\r\n            if (len == 2) {\r\n                this.opts[param] = value;\r\n            } else if (len == 1 && typeof param == 'object') {\r\n                this.opts = $.extend(true, this.opts, param)\r\n            }\r\n\r\n            this._createShortCuts();\r\n            this._syncWithMinMaxDates();\r\n            this._defineLocale(this.opts.language);\r\n            this.nav._addButtonsIfNeed();\r\n            if (!this.opts.onlyTimepicker) this.nav._render();\r\n            this.views[this.currentView]._render();\r\n\r\n            if (this.elIsInput && !this.opts.inline) {\r\n                this._setPositionClasses(this.opts.position);\r\n                if (this.visible) {\r\n                    this.setPosition(this.opts.position)\r\n                }\r\n            }\r\n\r\n            if (this.opts.classes) {\r\n                this.$datepicker.addClass(this.opts.classes)\r\n            }\r\n\r\n            if (this.opts.onlyTimepicker) {\r\n                this.$datepicker.addClass('-only-timepicker-');\r\n            }\r\n\r\n            if (this.opts.timepicker) {\r\n                if (lastSelectedDate) this.timepicker._handleDate(lastSelectedDate);\r\n                this.timepicker._updateRanges();\r\n                this.timepicker._updateCurrentTime();\r\n                // Change hours and minutes if it's values have been changed through min/max hours/minutes\r\n                if (lastSelectedDate) {\r\n                    lastSelectedDate.setHours(this.timepicker.hours);\r\n                    lastSelectedDate.setMinutes(this.timepicker.minutes);\r\n                }\r\n            }\r\n\r\n            this._setInputValue();\r\n\r\n            return this;\r\n        },\r\n\r\n        _syncWithMinMaxDates: function () {\r\n            var curTime = this.date.getTime();\r\n            this.silent = true;\r\n            if (this.minTime > curTime) {\r\n                this.date = this.minDate;\r\n            }\r\n\r\n            if (this.maxTime < curTime) {\r\n                this.date = this.maxDate;\r\n            }\r\n            this.silent = false;\r\n        },\r\n\r\n        _isSelected: function (checkDate, cellType) {\r\n            var res = false;\r\n            this.selectedDates.some(function (date) {\r\n                if (datepicker.isSame(date, checkDate, cellType)) {\r\n                    res = date;\r\n                    return true;\r\n                }\r\n            });\r\n            return res;\r\n        },\r\n\r\n        _setInputValue: function () {\r\n            var _this = this,\r\n                opts = _this.opts,\r\n                format = _this.loc.dateFormat,\r\n                altFormat = opts.altFieldDateFormat,\r\n                value = _this.selectedDates.map(function (date) {\r\n                    return _this.formatDate(format, date)\r\n                }),\r\n                altValues;\r\n\r\n            if (opts.altField && _this.$altField.length) {\r\n                altValues = this.selectedDates.map(function (date) {\r\n                    return _this.formatDate(altFormat, date)\r\n                });\r\n                altValues = altValues.join(this.opts.multipleDatesSeparator);\r\n                this.$altField.val(altValues);\r\n            }\r\n\r\n            value = value.join(this.opts.multipleDatesSeparator);\r\n\r\n            this.$el.val(value)\r\n        },\r\n\r\n        /**\r\n         * Check if date is between minDate and maxDate\r\n         * @param date {object} - date object\r\n         * @param type {string} - cell type\r\n         * @returns {boolean}\r\n         * @private\r\n         */\r\n        _isInRange: function (date, type) {\r\n            var time = date.getTime(),\r\n                d = datepicker.getParsedDate(date),\r\n                min = datepicker.getParsedDate(this.minDate),\r\n                max = datepicker.getParsedDate(this.maxDate),\r\n                dMinTime = new Date(d.year, d.month, min.date).getTime(),\r\n                dMaxTime = new Date(d.year, d.month, max.date).getTime(),\r\n                types = {\r\n                    day: time >= this.minTime && time <= this.maxTime,\r\n                    month: dMinTime >= this.minTime && dMaxTime <= this.maxTime,\r\n                    year: d.year >= min.year && d.year <= max.year\r\n                };\r\n            return type ? types[type] : types.day\r\n        },\r\n\r\n        _getDimensions: function ($el) {\r\n            var offset = $el.offset();\r\n\r\n            return {\r\n                width: $el.outerWidth(),\r\n                height: $el.outerHeight(),\r\n                left: offset.left,\r\n                top: offset.top\r\n            }\r\n        },\r\n\r\n        _getDateFromCell: function (cell) {\r\n            var curDate = this.parsedDate,\r\n                year = cell.data('year') || curDate.year,\r\n                month = cell.data('month') == undefined ? curDate.month : cell.data('month'),\r\n                date = cell.data('date') || 1;\r\n\r\n            return new Date(year, month, date);\r\n        },\r\n\r\n        _setPositionClasses: function (pos) {\r\n            pos = pos.split(' ');\r\n            var main = pos[0],\r\n                sec = pos[1],\r\n                classes = 'datepicker -' + main + '-' + sec + '- -from-' + main + '-';\r\n\r\n            if (this.visible) classes += ' active';\r\n\r\n            this.$datepicker\r\n                .removeAttr('class')\r\n                .addClass(classes);\r\n        },\r\n\r\n        setPosition: function (position) {\r\n            position = position || this.opts.position;\r\n\r\n            var dims = this._getDimensions(this.$el),\r\n                selfDims = this._getDimensions(this.$datepicker),\r\n                pos = position.split(' '),\r\n                top, left,\r\n                offset = this.opts.offset,\r\n                main = pos[0],\r\n                secondary = pos[1];\r\n\r\n            switch (main) {\r\n                case 'top':\r\n                    top = dims.top - selfDims.height - offset;\r\n                    break;\r\n                case 'right':\r\n                    left = dims.left + dims.width + offset;\r\n                    break;\r\n                case 'bottom':\r\n                    top = dims.top + dims.height + offset;\r\n                    break;\r\n                case 'left':\r\n                    left = dims.left - selfDims.width - offset;\r\n                    break;\r\n            }\r\n\r\n            switch(secondary) {\r\n                case 'top':\r\n                    top = dims.top;\r\n                    break;\r\n                case 'right':\r\n                    left = dims.left + dims.width - selfDims.width;\r\n                    break;\r\n                case 'bottom':\r\n                    top = dims.top + dims.height - selfDims.height;\r\n                    break;\r\n                case 'left':\r\n                    left = dims.left;\r\n                    break;\r\n                case 'center':\r\n                    if (/left|right/.test(main)) {\r\n                        top = dims.top + dims.height/2 - selfDims.height/2;\r\n                    } else {\r\n                        left = dims.left + dims.width/2 - selfDims.width/2;\r\n                    }\r\n            }\r\n\r\n            this.$datepicker\r\n                .css({\r\n                    left: left,\r\n                    top: top\r\n                })\r\n        },\r\n\r\n        show: function () {\r\n            var onShow = this.opts.onShow;\r\n\r\n            this.setPosition(this.opts.position);\r\n            this.$datepicker.addClass('active');\r\n            this.visible = true;\r\n\r\n            if (onShow) {\r\n                this._bindVisionEvents(onShow)\r\n            }\r\n        },\r\n\r\n        hide: function () {\r\n            var onHide = this.opts.onHide;\r\n\r\n            this.$datepicker\r\n                .removeClass('active')\r\n                .css({\r\n                    left: '-100000px'\r\n                });\r\n\r\n            this.focused = '';\r\n            this.keys = [];\r\n\r\n            this.inFocus = false;\r\n            this.visible = false;\r\n            this.$el.blur();\r\n\r\n            if (onHide) {\r\n                this._bindVisionEvents(onHide)\r\n            }\r\n        },\r\n\r\n        down: function (date) {\r\n            this._changeView(date, 'down');\r\n        },\r\n\r\n        up: function (date) {\r\n            this._changeView(date, 'up');\r\n        },\r\n\r\n        _bindVisionEvents: function (event) {\r\n            this.$datepicker.off('transitionend.dp');\r\n            event(this, false);\r\n            this.$datepicker.one('transitionend.dp', event.bind(this, this, true))\r\n        },\r\n\r\n        _changeView: function (date, dir) {\r\n            date = date || this.focused || this.date;\r\n\r\n            var nextView = dir == 'up' ? this.viewIndex + 1 : this.viewIndex - 1;\r\n            if (nextView > 2) nextView = 2;\r\n            if (nextView < 0) nextView = 0;\r\n\r\n            this.silent = true;\r\n            this.date = new Date(date.getFullYear(), date.getMonth(), 1);\r\n            this.silent = false;\r\n            this.view = this.viewIndexes[nextView];\r\n\r\n        },\r\n\r\n        _handleHotKey: function (key) {\r\n            var date = datepicker.getParsedDate(this._getFocusedDate()),\r\n                focusedParsed,\r\n                o = this.opts,\r\n                newDate,\r\n                totalDaysInNextMonth,\r\n                monthChanged = false,\r\n                yearChanged = false,\r\n                decadeChanged = false,\r\n                y = date.year,\r\n                m = date.month,\r\n                d = date.date;\r\n\r\n            switch (key) {\r\n                case 'ctrlRight':\r\n                case 'ctrlUp':\r\n                    m += 1;\r\n                    monthChanged = true;\r\n                    break;\r\n                case 'ctrlLeft':\r\n                case 'ctrlDown':\r\n                    m -= 1;\r\n                    monthChanged = true;\r\n                    break;\r\n                case 'shiftRight':\r\n                case 'shiftUp':\r\n                    yearChanged = true;\r\n                    y += 1;\r\n                    break;\r\n                case 'shiftLeft':\r\n                case 'shiftDown':\r\n                    yearChanged = true;\r\n                    y -= 1;\r\n                    break;\r\n                case 'altRight':\r\n                case 'altUp':\r\n                    decadeChanged = true;\r\n                    y += 10;\r\n                    break;\r\n                case 'altLeft':\r\n                case 'altDown':\r\n                    decadeChanged = true;\r\n                    y -= 10;\r\n                    break;\r\n                case 'ctrlShiftUp':\r\n                    this.up();\r\n                    break;\r\n            }\r\n\r\n            totalDaysInNextMonth = datepicker.getDaysCount(new Date(y,m));\r\n            newDate = new Date(y,m,d);\r\n\r\n            // If next month has less days than current, set date to total days in that month\r\n            if (totalDaysInNextMonth < d) d = totalDaysInNextMonth;\r\n\r\n            // Check if newDate is in valid range\r\n            if (newDate.getTime() < this.minTime) {\r\n                newDate = this.minDate;\r\n            } else if (newDate.getTime() > this.maxTime) {\r\n                newDate = this.maxDate;\r\n            }\r\n\r\n            this.focused = newDate;\r\n\r\n            focusedParsed = datepicker.getParsedDate(newDate);\r\n            if (monthChanged && o.onChangeMonth) {\r\n                o.onChangeMonth(focusedParsed.month, focusedParsed.year)\r\n            }\r\n            if (yearChanged && o.onChangeYear) {\r\n                o.onChangeYear(focusedParsed.year)\r\n            }\r\n            if (decadeChanged && o.onChangeDecade) {\r\n                o.onChangeDecade(this.curDecade)\r\n            }\r\n        },\r\n\r\n        _registerKey: function (key) {\r\n            var exists = this.keys.some(function (curKey) {\r\n                return curKey == key;\r\n            });\r\n\r\n            if (!exists) {\r\n                this.keys.push(key)\r\n            }\r\n        },\r\n\r\n        _unRegisterKey: function (key) {\r\n            var index = this.keys.indexOf(key);\r\n\r\n            this.keys.splice(index, 1);\r\n        },\r\n\r\n        _isHotKeyPressed: function () {\r\n            var currentHotKey,\r\n                found = false,\r\n                _this = this,\r\n                pressedKeys = this.keys.sort();\r\n\r\n            for (var hotKey in hotKeys) {\r\n                currentHotKey = hotKeys[hotKey];\r\n                if (pressedKeys.length != currentHotKey.length) continue;\r\n\r\n                if (currentHotKey.every(function (key, i) { return key == pressedKeys[i]})) {\r\n                    _this._trigger('hotKey', hotKey);\r\n                    found = true;\r\n                }\r\n            }\r\n\r\n            return found;\r\n        },\r\n\r\n        _trigger: function (event, args) {\r\n            this.$el.trigger(event, args)\r\n        },\r\n\r\n        _focusNextCell: function (keyCode, type) {\r\n            type = type || this.cellType;\r\n\r\n            var date = datepicker.getParsedDate(this._getFocusedDate()),\r\n                y = date.year,\r\n                m = date.month,\r\n                d = date.date;\r\n\r\n            if (this._isHotKeyPressed()){\r\n                return;\r\n            }\r\n\r\n            switch(keyCode) {\r\n                case 37: // left\r\n                    type == 'day' ? (d -= 1) : '';\r\n                    type == 'month' ? (m -= 1) : '';\r\n                    type == 'year' ? (y -= 1) : '';\r\n                    break;\r\n                case 38: // up\r\n                    type == 'day' ? (d -= 7) : '';\r\n                    type == 'month' ? (m -= 3) : '';\r\n                    type == 'year' ? (y -= 4) : '';\r\n                    break;\r\n                case 39: // right\r\n                    type == 'day' ? (d += 1) : '';\r\n                    type == 'month' ? (m += 1) : '';\r\n                    type == 'year' ? (y += 1) : '';\r\n                    break;\r\n                case 40: // down\r\n                    type == 'day' ? (d += 7) : '';\r\n                    type == 'month' ? (m += 3) : '';\r\n                    type == 'year' ? (y += 4) : '';\r\n                    break;\r\n            }\r\n\r\n            var nd = new Date(y,m,d);\r\n            if (nd.getTime() < this.minTime) {\r\n                nd = this.minDate;\r\n            } else if (nd.getTime() > this.maxTime) {\r\n                nd = this.maxDate;\r\n            }\r\n\r\n            this.focused = nd;\r\n\r\n        },\r\n\r\n        _getFocusedDate: function () {\r\n            var focused  = this.focused || this.selectedDates[this.selectedDates.length - 1],\r\n                d = this.parsedDate;\r\n\r\n            if (!focused) {\r\n                switch (this.view) {\r\n                    case 'days':\r\n                        focused = new Date(d.year, d.month, new Date().getDate());\r\n                        break;\r\n                    case 'months':\r\n                        focused = new Date(d.year, d.month, 1);\r\n                        break;\r\n                    case 'years':\r\n                        focused = new Date(d.year, 0, 1);\r\n                        break;\r\n                }\r\n            }\r\n\r\n            return focused;\r\n        },\r\n\r\n        _getCell: function (date, type) {\r\n            type = type || this.cellType;\r\n\r\n            var d = datepicker.getParsedDate(date),\r\n                selector = '.datepicker--cell[data-year=\"' + d.year + '\"]',\r\n                $cell;\r\n\r\n            switch (type) {\r\n                case 'month':\r\n                    selector = '[data-month=\"' + d.month + '\"]';\r\n                    break;\r\n                case 'day':\r\n                    selector += '[data-month=\"' + d.month + '\"][data-date=\"' + d.date + '\"]';\r\n                    break;\r\n            }\r\n            $cell = this.views[this.currentView].$el.find(selector);\r\n\r\n            return $cell.length ? $cell : $('');\r\n        },\r\n\r\n        destroy: function () {\r\n            var _this = this;\r\n            _this.$el\r\n                .off('.adp')\r\n                .data('datepicker', '');\r\n\r\n            _this.selectedDates = [];\r\n            _this.focused = '';\r\n            _this.views = {};\r\n            _this.keys = [];\r\n            _this.minRange = '';\r\n            _this.maxRange = '';\r\n\r\n            if (_this.opts.inline || !_this.elIsInput) {\r\n                _this.$datepicker.closest('.datepicker-inline').remove();\r\n            } else {\r\n                _this.$datepicker.remove();\r\n            }\r\n        },\r\n\r\n        _handleAlreadySelectedDates: function (alreadySelected, selectedDate) {\r\n            if (this.opts.range) {\r\n                if (!this.opts.toggleSelected) {\r\n                    // Add possibility to select same date when range is true\r\n                    if (this.selectedDates.length != 2) {\r\n                        this._trigger('clickCell', selectedDate);\r\n                    }\r\n                } else {\r\n                    this.removeDate(selectedDate);\r\n                }\r\n            } else if (this.opts.toggleSelected){\r\n                this.removeDate(selectedDate);\r\n            }\r\n\r\n            // Change last selected date to be able to change time when clicking on this cell\r\n            if (!this.opts.toggleSelected) {\r\n                this.lastSelectedDate = alreadySelected;\r\n                if (this.opts.timepicker) {\r\n                    this.timepicker._setTime(alreadySelected);\r\n                    this.timepicker.update();\r\n                }\r\n            }\r\n        },\r\n\r\n        _onShowEvent: function (e) {\r\n            if (!this.visible) {\r\n                this.show();\r\n            }\r\n        },\r\n\r\n        _onBlur: function () {\r\n            if (!this.inFocus && this.visible) {\r\n                this.hide();\r\n            }\r\n        },\r\n\r\n        _onMouseDownDatepicker: function (e) {\r\n            this.inFocus = true;\r\n        },\r\n\r\n        _onMouseUpDatepicker: function (e) {\r\n            this.inFocus = false;\r\n            e.originalEvent.inFocus = true;\r\n            if (!e.originalEvent.timepickerFocus) this.$el.focus();\r\n        },\r\n\r\n        _onKeyUpGeneral: function (e) {\r\n            var val = this.$el.val();\r\n\r\n            if (!val) {\r\n                this.clear();\r\n            }\r\n        },\r\n\r\n        _onResize: function () {\r\n            if (this.visible) {\r\n                this.setPosition();\r\n            }\r\n        },\r\n\r\n        _onMouseUpBody: function (e) {\r\n            if (e.originalEvent.inFocus) return;\r\n\r\n            if (this.visible && !this.inFocus) {\r\n                this.hide();\r\n            }\r\n        },\r\n\r\n        _onMouseUpEl: function (e) {\r\n            e.originalEvent.inFocus = true;\r\n            setTimeout(this._onKeyUpGeneral.bind(this),4);\r\n        },\r\n\r\n        _onKeyDown: function (e) {\r\n            var code = e.which;\r\n            this._registerKey(code);\r\n\r\n            // Arrows\r\n            if (code >= 37 && code <= 40) {\r\n                e.preventDefault();\r\n                this._focusNextCell(code);\r\n            }\r\n\r\n            // Enter\r\n            if (code == 13) {\r\n                if (this.focused) {\r\n                    if (this._getCell(this.focused).hasClass('-disabled-')) return;\r\n                    if (this.view != this.opts.minView) {\r\n                        this.down()\r\n                    } else {\r\n                        var alreadySelected = this._isSelected(this.focused, this.cellType);\r\n\r\n                        if (!alreadySelected) {\r\n                            if (this.timepicker) {\r\n                                this.focused.setHours(this.timepicker.hours);\r\n                                this.focused.setMinutes(this.timepicker.minutes);\r\n                            }\r\n                            this.selectDate(this.focused);\r\n                            return;\r\n                        }\r\n                        this._handleAlreadySelectedDates(alreadySelected, this.focused)\r\n                    }\r\n                }\r\n            }\r\n\r\n            // Esc\r\n            if (code == 27) {\r\n                this.hide();\r\n            }\r\n        },\r\n\r\n        _onKeyUp: function (e) {\r\n            var code = e.which;\r\n            this._unRegisterKey(code);\r\n        },\r\n\r\n        _onHotKey: function (e, hotKey) {\r\n            this._handleHotKey(hotKey);\r\n        },\r\n\r\n        _onMouseEnterCell: function (e) {\r\n            var $cell = $(e.target).closest('.datepicker--cell'),\r\n                date = this._getDateFromCell($cell);\r\n\r\n            // Prevent from unnecessary rendering and setting new currentDate\r\n            this.silent = true;\r\n\r\n            if (this.focused) {\r\n                this.focused = ''\r\n            }\r\n\r\n            $cell.addClass('-focus-');\r\n\r\n            this.focused = date;\r\n            this.silent = false;\r\n\r\n            if (this.opts.range && this.selectedDates.length == 1) {\r\n                this.minRange = this.selectedDates[0];\r\n                this.maxRange = '';\r\n                if (datepicker.less(this.minRange, this.focused)) {\r\n                    this.maxRange = this.minRange;\r\n                    this.minRange = '';\r\n                }\r\n                this.views[this.currentView]._update();\r\n            }\r\n        },\r\n\r\n        _onMouseLeaveCell: function (e) {\r\n            var $cell = $(e.target).closest('.datepicker--cell');\r\n\r\n            $cell.removeClass('-focus-');\r\n\r\n            this.silent = true;\r\n            this.focused = '';\r\n            this.silent = false;\r\n        },\r\n\r\n        _onTimeChange: function (e, h, m) {\r\n            var date = new Date(),\r\n                selectedDates = this.selectedDates,\r\n                selected = false;\r\n\r\n            if (selectedDates.length) {\r\n                selected = true;\r\n                date = this.lastSelectedDate;\r\n            }\r\n\r\n            date.setHours(h);\r\n            date.setMinutes(m);\r\n\r\n            if (!selected && !this._getCell(date).hasClass('-disabled-')) {\r\n                this.selectDate(date);\r\n            } else {\r\n                this._setInputValue();\r\n                if (this.opts.onSelect) {\r\n                    this._triggerOnChange();\r\n                }\r\n            }\r\n        },\r\n\r\n        _onClickCell: function (e, date) {\r\n            if (this.timepicker) {\r\n                date.setHours(this.timepicker.hours);\r\n                date.setMinutes(this.timepicker.minutes);\r\n            }\r\n            this.selectDate(date);\r\n        },\r\n\r\n        set focused(val) {\r\n            if (!val && this.focused) {\r\n                var $cell = this._getCell(this.focused);\r\n\r\n                if ($cell.length) {\r\n                    $cell.removeClass('-focus-')\r\n                }\r\n            }\r\n            this._focused = val;\r\n            if (this.opts.range && this.selectedDates.length == 1) {\r\n                this.minRange = this.selectedDates[0];\r\n                this.maxRange = '';\r\n                if (datepicker.less(this.minRange, this._focused)) {\r\n                    this.maxRange = this.minRange;\r\n                    this.minRange = '';\r\n                }\r\n            }\r\n            if (this.silent) return;\r\n            this.date = val;\r\n        },\r\n\r\n        get focused() {\r\n            return this._focused;\r\n        },\r\n\r\n        get parsedDate() {\r\n            return datepicker.getParsedDate(this.date);\r\n        },\r\n\r\n        set date (val) {\r\n            if (!(val instanceof Date)) return;\r\n\r\n            this.currentDate = val;\r\n\r\n            if (this.inited && !this.silent) {\r\n                this.views[this.view]._render();\r\n                this.nav._render();\r\n                if (this.visible && this.elIsInput) {\r\n                    this.setPosition();\r\n                }\r\n            }\r\n            return val;\r\n        },\r\n\r\n        get date () {\r\n            return this.currentDate\r\n        },\r\n\r\n        set view (val) {\r\n            this.viewIndex = this.viewIndexes.indexOf(val);\r\n\r\n            if (this.viewIndex < 0) {\r\n                return;\r\n            }\r\n\r\n            this.prevView = this.currentView;\r\n            this.currentView = val;\r\n\r\n            if (this.inited) {\r\n                if (!this.views[val]) {\r\n                    this.views[val] = new  $.fn.datepicker.Body(this, val, this.opts)\r\n                } else {\r\n                    this.views[val]._render();\r\n                }\r\n\r\n                this.views[this.prevView].hide();\r\n                this.views[val].show();\r\n                this.nav._render();\r\n\r\n                if (this.opts.onChangeView) {\r\n                    this.opts.onChangeView(val)\r\n                }\r\n                if (this.elIsInput && this.visible) this.setPosition();\r\n            }\r\n\r\n            return val\r\n        },\r\n\r\n        get view() {\r\n            return this.currentView;\r\n        },\r\n\r\n        get cellType() {\r\n            return this.view.substring(0, this.view.length - 1)\r\n        },\r\n\r\n        get minTime() {\r\n            var min = datepicker.getParsedDate(this.minDate);\r\n            return new Date(min.year, min.month, min.date).getTime()\r\n        },\r\n\r\n        get maxTime() {\r\n            var max = datepicker.getParsedDate(this.maxDate);\r\n            return new Date(max.year, max.month, max.date).getTime()\r\n        },\r\n\r\n        get curDecade() {\r\n            return datepicker.getDecade(this.date)\r\n        }\r\n    };\r\n\r\n    //  Utils\r\n    // -------------------------------------------------\r\n\r\n    datepicker.getDaysCount = function (date) {\r\n        return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();\r\n    };\r\n\r\n    datepicker.getParsedDate = function (date) {\r\n        return {\r\n            year: date.getFullYear(),\r\n            month: date.getMonth(),\r\n            fullMonth: (date.getMonth() + 1) < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1, // One based\r\n            date: date.getDate(),\r\n            fullDate: date.getDate() < 10 ? '0' + date.getDate() : date.getDate(),\r\n            day: date.getDay(),\r\n            hours: date.getHours(),\r\n            fullHours:  date.getHours() < 10 ? '0' + date.getHours() :  date.getHours() ,\r\n            minutes: date.getMinutes(),\r\n            fullMinutes:  date.getMinutes() < 10 ? '0' + date.getMinutes() :  date.getMinutes()\r\n        }\r\n    };\r\n\r\n    datepicker.getDecade = function (date) {\r\n        var firstYear = Math.floor(date.getFullYear() / 10) * 10;\r\n\r\n        return [firstYear, firstYear + 9];\r\n    };\r\n\r\n    datepicker.template = function (str, data) {\r\n        return str.replace(/#\\{([\\w]+)\\}/g, function (source, match) {\r\n            if (data[match] || data[match] === 0) {\r\n                return data[match]\r\n            }\r\n        });\r\n    };\r\n\r\n    datepicker.isSame = function (date1, date2, type) {\r\n        if (!date1 || !date2) return false;\r\n        var d1 = datepicker.getParsedDate(date1),\r\n            d2 = datepicker.getParsedDate(date2),\r\n            _type = type ? type : 'day',\r\n\r\n            conditions = {\r\n                day: d1.date == d2.date && d1.month == d2.month && d1.year == d2.year,\r\n                month: d1.month == d2.month && d1.year == d2.year,\r\n                year: d1.year == d2.year\r\n            };\r\n\r\n        return conditions[_type];\r\n    };\r\n\r\n    datepicker.less = function (dateCompareTo, date, type) {\r\n        if (!dateCompareTo || !date) return false;\r\n        return date.getTime() < dateCompareTo.getTime();\r\n    };\r\n\r\n    datepicker.bigger = function (dateCompareTo, date, type) {\r\n        if (!dateCompareTo || !date) return false;\r\n        return date.getTime() > dateCompareTo.getTime();\r\n    };\r\n\r\n    datepicker.getLeadingZeroNum = function (num) {\r\n        return parseInt(num) < 10 ? '0' + num : num;\r\n    };\r\n\r\n    /**\r\n     * Returns copy of date with hours and minutes equals to 0\r\n     * @param date {Date}\r\n     */\r\n    datepicker.resetTime = function (date) {\r\n        if (typeof date != 'object') return;\r\n        date = datepicker.getParsedDate(date);\r\n        return new Date(date.year, date.month, date.date)\r\n    };\r\n\r\n    $.fn.datepicker = function ( options ) {\r\n        return this.each(function () {\r\n            if (!$.data(this, pluginName)) {\r\n                $.data(this,  pluginName,\r\n                    new Datepicker( this, options ));\r\n            } else {\r\n                var _this = $.data(this, pluginName);\r\n\r\n                _this.opts = $.extend(true, _this.opts, options);\r\n                _this.update();\r\n            }\r\n        });\r\n    };\r\n\r\n    $.fn.datepicker.Constructor = Datepicker;\r\n\r\n    $.fn.datepicker.language = {\r\n        ru: {\r\n            days: ['\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435', '\u041F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A', '\u0412\u0442\u043E\u0440\u043D\u0438\u043A', '\u0421\u0440\u0435\u0434\u0430', '\u0427\u0435\u0442\u0432\u0435\u0440\u0433', '\u041F\u044F\u0442\u043D\u0438\u0446\u0430', '\u0421\u0443\u0431\u0431\u043E\u0442\u0430'],\r\n            daysShort: ['\u0412\u043E\u0441','\u041F\u043E\u043D','\u0412\u0442\u043E','\u0421\u0440\u0435','\u0427\u0435\u0442','\u041F\u044F\u0442','\u0421\u0443\u0431'],\r\n            daysMin: ['\u0412\u0441','\u041F\u043D','\u0412\u0442','\u0421\u0440','\u0427\u0442','\u041F\u0442','\u0421\u0431'],\r\n            months: ['\u042F\u043D\u0432\u0430\u0440\u044C', '\u0424\u0435\u0432\u0440\u0430\u043B\u044C', '\u041C\u0430\u0440\u0442', '\u0410\u043F\u0440\u0435\u043B\u044C', '\u041C\u0430\u0439', '\u0418\u044E\u043D\u044C', '\u0418\u044E\u043B\u044C', '\u0410\u0432\u0433\u0443\u0441\u0442', '\u0421\u0435\u043D\u0442\u044F\u0431\u0440\u044C', '\u041E\u043A\u0442\u044F\u0431\u0440\u044C', '\u041D\u043E\u044F\u0431\u0440\u044C', '\u0414\u0435\u043A\u0430\u0431\u0440\u044C'],\r\n            monthsShort: ['\u042F\u043D\u0432', '\u0424\u0435\u0432', '\u041C\u0430\u0440', '\u0410\u043F\u0440', '\u041C\u0430\u0439', '\u0418\u044E\u043D', '\u0418\u044E\u043B', '\u0410\u0432\u0433', '\u0421\u0435\u043D', '\u041E\u043A\u0442', '\u041D\u043E\u044F', '\u0414\u0435\u043A'],\r\n            today: '\u0421\u0435\u0433\u043E\u0434\u043D\u044F',\r\n            clear: '\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C',\r\n            dateFormat: 'dd.mm.yyyy',\r\n            timeFormat: 'hh:ii',\r\n            firstDay: 1\r\n        }\r\n    };\r\n\r\n    $(function () {\r\n        $(autoInitSelector).datepicker();\r\n    })\r\n\r\n})();\r\n", ";(function () {\r\n    var templates = {\r\n        days:'' +\r\n        '<div class=\"datepicker--days datepicker--body\">' +\r\n        '<div class=\"datepicker--days-names\"></div>' +\r\n        '<div class=\"datepicker--cells datepicker--cells-days\"></div>' +\r\n        '</div>',\r\n        months: '' +\r\n        '<div class=\"datepicker--months datepicker--body\">' +\r\n        '<div class=\"datepicker--cells datepicker--cells-months\"></div>' +\r\n        '</div>',\r\n        years: '' +\r\n        '<div class=\"datepicker--years datepicker--body\">' +\r\n        '<div class=\"datepicker--cells datepicker--cells-years\"></div>' +\r\n        '</div>'\r\n        },\r\n        datepicker = $.fn.datepicker,\r\n        dp = datepicker.Constructor;\r\n\r\n    datepicker.Body = function (d, type, opts) {\r\n        this.d = d;\r\n        this.type = type;\r\n        this.opts = opts;\r\n        this.$el = $('');\r\n\r\n        if (this.opts.onlyTimepicker) return;\r\n        this.init();\r\n    };\r\n\r\n    datepicker.Body.prototype = {\r\n        init: function () {\r\n            this._buildBaseHtml();\r\n            this._render();\r\n\r\n            this._bindEvents();\r\n        },\r\n\r\n        _bindEvents: function () {\r\n            this.$el.on('click', '.datepicker--cell', $.proxy(this._onClickCell, this));\r\n        },\r\n\r\n        _buildBaseHtml: function () {\r\n            this.$el = $(templates[this.type]).appendTo(this.d.$content);\r\n            this.$names = $('.datepicker--days-names', this.$el);\r\n            this.$cells = $('.datepicker--cells', this.$el);\r\n        },\r\n\r\n        _getDayNamesHtml: function (firstDay, curDay, html, i) {\r\n            curDay = curDay != undefined ? curDay : firstDay;\r\n            html = html ? html : '';\r\n            i = i != undefined ? i : 0;\r\n\r\n            if (i > 7) return html;\r\n            if (curDay == 7) return this._getDayNamesHtml(firstDay, 0, html, ++i);\r\n\r\n            html += '<div class=\"datepicker--day-name' + (this.d.isWeekend(curDay) ? \" -weekend-\" : \"\") + '\">' + this.d.loc.daysMin[curDay] + '</div>';\r\n\r\n            return this._getDayNamesHtml(firstDay, ++curDay, html, ++i);\r\n        },\r\n\r\n        _getCellContents: function (date, type) {\r\n            var classes = \"datepicker--cell datepicker--cell-\" + type,\r\n                currentDate = new Date(),\r\n                parent = this.d,\r\n                minRange = dp.resetTime(parent.minRange),\r\n                maxRange = dp.resetTime(parent.maxRange),\r\n                opts = parent.opts,\r\n                d = dp.getParsedDate(date),\r\n                render = {},\r\n                html = d.date;\r\n\r\n            switch (type) {\r\n                case 'day':\r\n                    if (parent.isWeekend(d.day)) classes += \" -weekend-\";\r\n                    if (d.month != this.d.parsedDate.month) {\r\n                        classes += \" -other-month-\";\r\n                        if (!opts.selectOtherMonths) {\r\n                            classes += \" -disabled-\";\r\n                        }\r\n                        if (!opts.showOtherMonths) html = '';\r\n                    }\r\n                    break;\r\n                case 'month':\r\n                    html = parent.loc[parent.opts.monthsField][d.month];\r\n                    break;\r\n                case 'year':\r\n                    var decade = parent.curDecade;\r\n                    html = d.year;\r\n                    if (d.year < decade[0] || d.year > decade[1]) {\r\n                        classes += ' -other-decade-';\r\n                        if (!opts.selectOtherYears) {\r\n                            classes += \" -disabled-\";\r\n                        }\r\n                        if (!opts.showOtherYears) html = '';\r\n                    }\r\n                    break;\r\n            }\r\n\r\n            if (opts.onRenderCell) {\r\n                render = opts.onRenderCell(date, type) || {};\r\n                html = render.html ? render.html : html;\r\n                classes += render.classes ? ' ' + render.classes : '';\r\n            }\r\n\r\n            if (opts.range) {\r\n                if (dp.isSame(minRange, date, type)) classes += ' -range-from-';\r\n                if (dp.isSame(maxRange, date, type)) classes += ' -range-to-';\r\n\r\n                if (parent.selectedDates.length == 1 && parent.focused) {\r\n                    if (\r\n                        (dp.bigger(minRange, date) && dp.less(parent.focused, date)) ||\r\n                        (dp.less(maxRange, date) && dp.bigger(parent.focused, date)))\r\n                    {\r\n                        classes += ' -in-range-'\r\n                    }\r\n\r\n                    if (dp.less(maxRange, date) && dp.isSame(parent.focused, date)) {\r\n                        classes += ' -range-from-'\r\n                    }\r\n                    if (dp.bigger(minRange, date) && dp.isSame(parent.focused, date)) {\r\n                        classes += ' -range-to-'\r\n                    }\r\n\r\n                } else if (parent.selectedDates.length == 2) {\r\n                    if (dp.bigger(minRange, date) && dp.less(maxRange, date)) {\r\n                        classes += ' -in-range-'\r\n                    }\r\n                }\r\n            }\r\n\r\n\r\n            if (dp.isSame(currentDate, date, type)) classes += ' -current-';\r\n            if (parent.focused && dp.isSame(date, parent.focused, type)) classes += ' -focus-';\r\n            if (parent._isSelected(date, type)) classes += ' -selected-';\r\n            if (!parent._isInRange(date, type) || render.disabled) classes += ' -disabled-';\r\n\r\n            return {\r\n                html: html,\r\n                classes: classes\r\n            }\r\n        },\r\n\r\n        /**\r\n         * Calculates days number to render. Generates days html and returns it.\r\n         * @param {object} date - Date object\r\n         * @returns {string}\r\n         * @private\r\n         */\r\n        _getDaysHtml: function (date) {\r\n            var totalMonthDays = dp.getDaysCount(date),\r\n                firstMonthDay = new Date(date.getFullYear(), date.getMonth(), 1).getDay(),\r\n                lastMonthDay = new Date(date.getFullYear(), date.getMonth(), totalMonthDays).getDay(),\r\n                daysFromPevMonth = firstMonthDay - this.d.loc.firstDay,\r\n                daysFromNextMonth = 6 - lastMonthDay + this.d.loc.firstDay;\r\n\r\n            daysFromPevMonth = daysFromPevMonth < 0 ? daysFromPevMonth + 7 : daysFromPevMonth;\r\n            daysFromNextMonth = daysFromNextMonth > 6 ? daysFromNextMonth - 7 : daysFromNextMonth;\r\n\r\n            var startDayIndex = -daysFromPevMonth + 1,\r\n                m, y,\r\n                html = '';\r\n\r\n            for (var i = startDayIndex, max = totalMonthDays + daysFromNextMonth; i <= max; i++) {\r\n                y = date.getFullYear();\r\n                m = date.getMonth();\r\n\r\n                html += this._getDayHtml(new Date(y, m, i))\r\n            }\r\n\r\n            return html;\r\n        },\r\n\r\n        _getDayHtml: function (date) {\r\n           var content = this._getCellContents(date, 'day');\r\n\r\n            return '<div class=\"' + content.classes + '\" ' +\r\n                'data-date=\"' + date.getDate() + '\" ' +\r\n                'data-month=\"' + date.getMonth() + '\" ' +\r\n                'data-year=\"' + date.getFullYear() + '\">' + content.html + '</div>';\r\n        },\r\n\r\n        /**\r\n         * Generates months html\r\n         * @param {object} date - date instance\r\n         * @returns {string}\r\n         * @private\r\n         */\r\n        _getMonthsHtml: function (date) {\r\n            var html = '',\r\n                d = dp.getParsedDate(date),\r\n                i = 0;\r\n\r\n            while(i < 12) {\r\n                html += this._getMonthHtml(new Date(d.year, i));\r\n                i++\r\n            }\r\n\r\n            return html;\r\n        },\r\n\r\n        _getMonthHtml: function (date) {\r\n            var content = this._getCellContents(date, 'month');\r\n\r\n            return '<div class=\"' + content.classes + '\" data-month=\"' + date.getMonth() + '\">' + content.html + '</div>'\r\n        },\r\n\r\n        _getYearsHtml: function (date) {\r\n            var d = dp.getParsedDate(date),\r\n                decade = dp.getDecade(date),\r\n                firstYear = decade[0] - 1,\r\n                html = '',\r\n                i = firstYear;\r\n\r\n            for (i; i <= decade[1] + 1; i++) {\r\n                html += this._getYearHtml(new Date(i , 0));\r\n            }\r\n\r\n            return html;\r\n        },\r\n\r\n        _getYearHtml: function (date) {\r\n            var content = this._getCellContents(date, 'year');\r\n\r\n            return '<div class=\"' + content.classes + '\" data-year=\"' + date.getFullYear() + '\">' + content.html + '</div>'\r\n        },\r\n\r\n        _renderTypes: {\r\n            days: function () {\r\n                var dayNames = this._getDayNamesHtml(this.d.loc.firstDay),\r\n                    days = this._getDaysHtml(this.d.currentDate);\r\n\r\n                this.$cells.html(days);\r\n                this.$names.html(dayNames)\r\n            },\r\n            months: function () {\r\n                var html = this._getMonthsHtml(this.d.currentDate);\r\n\r\n                this.$cells.html(html)\r\n            },\r\n            years: function () {\r\n                var html = this._getYearsHtml(this.d.currentDate);\r\n\r\n                this.$cells.html(html)\r\n            }\r\n        },\r\n\r\n        _render: function () {\r\n            if (this.opts.onlyTimepicker) return;\r\n            this._renderTypes[this.type].bind(this)();\r\n        },\r\n\r\n        _update: function () {\r\n            var $cells = $('.datepicker--cell', this.$cells),\r\n                _this = this,\r\n                classes,\r\n                $cell,\r\n                date;\r\n            $cells.each(function (cell, i) {\r\n                $cell = $(this);\r\n                date = _this.d._getDateFromCell($(this));\r\n                classes = _this._getCellContents(date, _this.d.cellType);\r\n                $cell.attr('class',classes.classes)\r\n            });\r\n        },\r\n\r\n        show: function () {\r\n            if (this.opts.onlyTimepicker) return;\r\n            this.$el.addClass('active');\r\n            this.acitve = true;\r\n        },\r\n\r\n        hide: function () {\r\n            this.$el.removeClass('active');\r\n            this.active = false;\r\n        },\r\n\r\n        //  Events\r\n        // -------------------------------------------------\r\n\r\n        _handleClick: function (el) {\r\n            var date = el.data('date') || 1,\r\n                month = el.data('month') || 0,\r\n                year = el.data('year') || this.d.parsedDate.year,\r\n                dp = this.d;\r\n            // Change view if min view does not reach yet\r\n            if (dp.view != this.opts.minView) {\r\n                dp.down(new Date(year, month, date));\r\n                return;\r\n            }\r\n            // Select date if min view is reached\r\n            var selectedDate = new Date(year, month, date),\r\n                alreadySelected = this.d._isSelected(selectedDate, this.d.cellType);\r\n\r\n            if (!alreadySelected) {\r\n                dp._trigger('clickCell', selectedDate);\r\n                return;\r\n            }\r\n\r\n            dp._handleAlreadySelectedDates.bind(dp, alreadySelected, selectedDate)();\r\n\r\n        },\r\n\r\n        _onClickCell: function (e) {\r\n            var $el = $(e.target).closest('.datepicker--cell');\r\n\r\n            if ($el.hasClass('-disabled-')) return;\r\n\r\n            this._handleClick.bind(this)($el);\r\n        }\r\n    };\r\n})();\r\n", ";(function () {\r\n    var template = '' +\r\n        '<div class=\"datepicker--nav-action\" data-action=\"prev\">#{prevHtml}</div>' +\r\n        '<div class=\"datepicker--nav-title\">#{title}</div>' +\r\n        '<div class=\"datepicker--nav-action\" data-action=\"next\">#{nextHtml}</div>',\r\n        buttonsContainerTemplate = '<div class=\"datepicker--buttons\"></div>',\r\n        button = '<span class=\"datepicker--button\" data-action=\"#{action}\">#{label}</span>',\r\n        datepicker = $.fn.datepicker,\r\n        dp = datepicker.Constructor;\r\n\r\n    datepicker.Navigation = function (d, opts) {\r\n        this.d = d;\r\n        this.opts = opts;\r\n\r\n        this.$buttonsContainer = '';\r\n\r\n        this.init();\r\n    };\r\n\r\n    datepicker.Navigation.prototype = {\r\n        init: function () {\r\n            this._buildBaseHtml();\r\n            this._bindEvents();\r\n        },\r\n\r\n        _bindEvents: function () {\r\n            this.d.$nav.on('click', '.datepicker--nav-action', $.proxy(this._onClickNavButton, this));\r\n            this.d.$nav.on('click', '.datepicker--nav-title', $.proxy(this._onClickNavTitle, this));\r\n            this.d.$datepicker.on('click', '.datepicker--button', $.proxy(this._onClickNavButton, this));\r\n        },\r\n\r\n        _buildBaseHtml: function () {\r\n            if (!this.opts.onlyTimepicker) {\r\n                this._render();\r\n            }\r\n            this._addButtonsIfNeed();\r\n        },\r\n\r\n        _addButtonsIfNeed: function () {\r\n            if (this.opts.todayButton) {\r\n                this._addButton('today')\r\n            }\r\n            if (this.opts.clearButton) {\r\n                this._addButton('clear')\r\n            }\r\n        },\r\n\r\n        _render: function () {\r\n            var title = this._getTitle(this.d.currentDate),\r\n                html = dp.template(template, $.extend({title: title}, this.opts));\r\n            this.d.$nav.html(html);\r\n            if (this.d.view == 'years') {\r\n                $('.datepicker--nav-title', this.d.$nav).addClass('-disabled-');\r\n            }\r\n            this.setNavStatus();\r\n        },\r\n\r\n        _getTitle: function (date) {\r\n            return this.d.formatDate(this.opts.navTitles[this.d.view], date)\r\n        },\r\n\r\n        _addButton: function (type) {\r\n            if (!this.$buttonsContainer.length) {\r\n                this._addButtonsContainer();\r\n            }\r\n\r\n            var data = {\r\n                    action: type,\r\n                    label: this.d.loc[type]\r\n                },\r\n                html = dp.template(button, data);\r\n\r\n            if ($('[data-action=' + type + ']', this.$buttonsContainer).length) return;\r\n            this.$buttonsContainer.append(html);\r\n        },\r\n\r\n        _addButtonsContainer: function () {\r\n            this.d.$datepicker.append(buttonsContainerTemplate);\r\n            this.$buttonsContainer = $('.datepicker--buttons', this.d.$datepicker);\r\n        },\r\n\r\n        setNavStatus: function () {\r\n            if (!(this.opts.minDate || this.opts.maxDate) || !this.opts.disableNavWhenOutOfRange) return;\r\n\r\n            var date = this.d.parsedDate,\r\n                m = date.month,\r\n                y = date.year,\r\n                d = date.date;\r\n\r\n            switch (this.d.view) {\r\n                case 'days':\r\n                    if (!this.d._isInRange(new Date(y, m-1, 1), 'month')) {\r\n                        this._disableNav('prev')\r\n                    }\r\n                    if (!this.d._isInRange(new Date(y, m+1, 1), 'month')) {\r\n                        this._disableNav('next')\r\n                    }\r\n                    break;\r\n                case 'months':\r\n                    if (!this.d._isInRange(new Date(y-1, m, d), 'year')) {\r\n                        this._disableNav('prev')\r\n                    }\r\n                    if (!this.d._isInRange(new Date(y+1, m, d), 'year')) {\r\n                        this._disableNav('next')\r\n                    }\r\n                    break;\r\n                case 'years':\r\n                    var decade = dp.getDecade(this.d.date);\r\n                    if (!this.d._isInRange(new Date(decade[0] - 1, 0, 1), 'year')) {\r\n                        this._disableNav('prev')\r\n                    }\r\n                    if (!this.d._isInRange(new Date(decade[1] + 1, 0, 1), 'year')) {\r\n                        this._disableNav('next')\r\n                    }\r\n                    break;\r\n            }\r\n        },\r\n\r\n        _disableNav: function (nav) {\r\n            $('[data-action=\"' + nav + '\"]', this.d.$nav).addClass('-disabled-')\r\n        },\r\n\r\n        _activateNav: function (nav) {\r\n            $('[data-action=\"' + nav + '\"]', this.d.$nav).removeClass('-disabled-')\r\n        },\r\n\r\n        _onClickNavButton: function (e) {\r\n            var $el = $(e.target).closest('[data-action]'),\r\n                action = $el.data('action');\r\n\r\n            this.d[action]();\r\n        },\r\n\r\n        _onClickNavTitle: function (e) {\r\n            if ($(e.target).hasClass('-disabled-')) return;\r\n\r\n            if (this.d.view == 'days') {\r\n                return this.d.view = 'months'\r\n            }\r\n\r\n            this.d.view = 'years';\r\n        }\r\n    }\r\n\r\n})();\r\n", ";(function () {\r\n    var template = '<div class=\"datepicker--time\">' +\r\n        '<div class=\"datepicker--time-current\">' +\r\n        '   <span class=\"datepicker--time-current-hours\">#{hourVisible}</span>' +\r\n        '   <span class=\"datepicker--time-current-colon\">:</span>' +\r\n        '   <span class=\"datepicker--time-current-minutes\">#{minValue}</span>' +\r\n        '</div>' +\r\n        '<div class=\"datepicker--time-sliders\">' +\r\n        '   <div class=\"datepicker--time-row\">' +\r\n        '      <input type=\"range\" name=\"hours\" value=\"#{hourValue}\" min=\"#{hourMin}\" max=\"#{hourMax}\" step=\"#{hourStep}\"/>' +\r\n        '   </div>' +\r\n        '   <div class=\"datepicker--time-row\">' +\r\n        '      <input type=\"range\" name=\"minutes\" value=\"#{minValue}\" min=\"#{minMin}\" max=\"#{minMax}\" step=\"#{minStep}\"/>' +\r\n        '   </div>' +\r\n        '</div>' +\r\n        '</div>',\r\n        datepicker = $.fn.datepicker,\r\n        dp = datepicker.Constructor;\r\n\r\n    datepicker.Timepicker = function (inst, opts) {\r\n        this.d = inst;\r\n        this.opts = opts;\r\n\r\n        this.init();\r\n    };\r\n\r\n    datepicker.Timepicker.prototype = {\r\n        init: function () {\r\n            var input = 'input';\r\n            this._setTime(this.d.date);\r\n            this._buildHTML();\r\n\r\n            if (navigator.userAgent.match(/trident/gi)) {\r\n                input = 'change';\r\n            }\r\n\r\n            this.d.$el.on('selectDate', this._onSelectDate.bind(this));\r\n            this.$ranges.on(input, this._onChangeRange.bind(this));\r\n            this.$ranges.on('mouseup', this._onMouseUpRange.bind(this));\r\n            this.$ranges.on('mousemove focus ', this._onMouseEnterRange.bind(this));\r\n            this.$ranges.on('mouseout blur', this._onMouseOutRange.bind(this));\r\n        },\r\n\r\n        _setTime: function (date) {\r\n            var _date = dp.getParsedDate(date);\r\n\r\n            this._handleDate(date);\r\n            this.hours = _date.hours < this.minHours ? this.minHours : _date.hours;\r\n            this.minutes = _date.minutes < this.minMinutes ? this.minMinutes : _date.minutes;\r\n        },\r\n\r\n        /**\r\n         * Sets minHours and minMinutes from date (usually it's a minDate)\r\n         * Also changes minMinutes if current hours are bigger then @date hours\r\n         * @param date {Date}\r\n         * @private\r\n         */\r\n        _setMinTimeFromDate: function (date) {\r\n            this.minHours = date.getHours();\r\n            this.minMinutes = date.getMinutes();\r\n\r\n            // If, for example, min hours are 10, and current hours are 12,\r\n            // update minMinutes to default value, to be able to choose whole range of values\r\n            if (this.d.lastSelectedDate) {\r\n                if (this.d.lastSelectedDate.getHours() > date.getHours()) {\r\n                    this.minMinutes = this.opts.minMinutes;\r\n                }\r\n            }\r\n        },\r\n\r\n        _setMaxTimeFromDate: function (date) {\r\n            this.maxHours = date.getHours();\r\n            this.maxMinutes = date.getMinutes();\r\n\r\n            if (this.d.lastSelectedDate) {\r\n                if (this.d.lastSelectedDate.getHours() < date.getHours()) {\r\n                    this.maxMinutes = this.opts.maxMinutes;\r\n                }\r\n            }\r\n        },\r\n\r\n        _setDefaultMinMaxTime: function () {\r\n            var maxHours = 23,\r\n                maxMinutes = 59,\r\n                opts = this.opts;\r\n\r\n            this.minHours = opts.minHours < 0 || opts.minHours > maxHours ? 0 : opts.minHours;\r\n            this.minMinutes = opts.minMinutes < 0 || opts.minMinutes > maxMinutes ? 0 : opts.minMinutes;\r\n            this.maxHours = opts.maxHours < 0 || opts.maxHours > maxHours ? maxHours : opts.maxHours;\r\n            this.maxMinutes = opts.maxMinutes < 0 || opts.maxMinutes > maxMinutes ? maxMinutes : opts.maxMinutes;\r\n        },\r\n\r\n        /**\r\n         * Looks for min/max hours/minutes and if current values\r\n         * are out of range sets valid values.\r\n         * @private\r\n         */\r\n        _validateHoursMinutes: function (date) {\r\n            if (this.hours < this.minHours) {\r\n                this.hours = this.minHours;\r\n            } else if (this.hours > this.maxHours) {\r\n                this.hours = this.maxHours;\r\n            }\r\n\r\n            if (this.minutes < this.minMinutes) {\r\n                this.minutes = this.minMinutes;\r\n            } else if (this.minutes > this.maxMinutes) {\r\n                this.minutes = this.maxMinutes;\r\n            }\r\n        },\r\n\r\n        _buildHTML: function () {\r\n            var lz = dp.getLeadingZeroNum,\r\n                data = {\r\n                    hourMin: this.minHours,\r\n                    hourMax: lz(this.maxHours),\r\n                    hourStep: this.opts.hoursStep,\r\n                    hourValue: this.hours,\r\n                    hourVisible: lz(this.displayHours),\r\n                    minMin: this.minMinutes,\r\n                    minMax: lz(this.maxMinutes),\r\n                    minStep: this.opts.minutesStep,\r\n                    minValue: lz(this.minutes)\r\n                },\r\n                _template = dp.template(template, data);\r\n\r\n            this.$timepicker = $(_template).appendTo(this.d.$datepicker);\r\n            this.$ranges = $('[type=\"range\"]', this.$timepicker);\r\n            this.$hours = $('[name=\"hours\"]', this.$timepicker);\r\n            this.$minutes = $('[name=\"minutes\"]', this.$timepicker);\r\n            this.$hoursText = $('.datepicker--time-current-hours', this.$timepicker);\r\n            this.$minutesText = $('.datepicker--time-current-minutes', this.$timepicker);\r\n\r\n            if (this.d.ampm) {\r\n                this.$ampm = $('<span class=\"datepicker--time-current-ampm\">')\r\n                    .appendTo($('.datepicker--time-current', this.$timepicker))\r\n                    .html(this.dayPeriod);\r\n\r\n                this.$timepicker.addClass('-am-pm-');\r\n            }\r\n        },\r\n\r\n        _updateCurrentTime: function () {\r\n            var h =  dp.getLeadingZeroNum(this.displayHours),\r\n                m = dp.getLeadingZeroNum(this.minutes);\r\n\r\n            this.$hoursText.html(h);\r\n            this.$minutesText.html(m);\r\n\r\n            if (this.d.ampm) {\r\n                this.$ampm.html(this.dayPeriod);\r\n            }\r\n        },\r\n\r\n        _updateRanges: function () {\r\n            this.$hours.attr({\r\n                min: this.minHours,\r\n                max: this.maxHours\r\n            }).val(this.hours);\r\n\r\n            this.$minutes.attr({\r\n                min: this.minMinutes,\r\n                max: this.maxMinutes\r\n            }).val(this.minutes)\r\n        },\r\n\r\n        /**\r\n         * Sets minHours, minMinutes etc. from date. If date is not passed, than sets\r\n         * values from options\r\n         * @param [date] {object} - Date object, to get values from\r\n         * @private\r\n         */\r\n        _handleDate: function (date) {\r\n            this._setDefaultMinMaxTime();\r\n            if (date) {\r\n                if (dp.isSame(date, this.d.opts.minDate)) {\r\n                    this._setMinTimeFromDate(this.d.opts.minDate);\r\n                } else if (dp.isSame(date, this.d.opts.maxDate)) {\r\n                    this._setMaxTimeFromDate(this.d.opts.maxDate);\r\n                }\r\n            }\r\n\r\n            this._validateHoursMinutes(date);\r\n        },\r\n\r\n        update: function () {\r\n            this._updateRanges();\r\n            this._updateCurrentTime();\r\n        },\r\n\r\n        /**\r\n         * Calculates valid hour value to display in text input and datepicker's body.\r\n         * @param date {Date|Number} - date or hours\r\n         * @param [ampm] {Boolean} - 12 hours mode\r\n         * @returns {{hours: *, dayPeriod: string}}\r\n         * @private\r\n         */\r\n        _getValidHoursFromDate: function (date, ampm) {\r\n            var d = date,\r\n                hours = date;\r\n\r\n            if (date instanceof Date) {\r\n                d = dp.getParsedDate(date);\r\n                hours = d.hours;\r\n            }\r\n\r\n            var _ampm = ampm || this.d.ampm,\r\n                dayPeriod = 'am';\r\n\r\n            if (_ampm) {\r\n                switch(true) {\r\n                    case hours == 0:\r\n                        hours = 12;\r\n                        break;\r\n                    case hours == 12:\r\n                        dayPeriod = 'pm';\r\n                        break;\r\n                    case hours > 11:\r\n                        hours = hours - 12;\r\n                        dayPeriod = 'pm';\r\n                        break;\r\n                    default:\r\n                        break;\r\n                }\r\n            }\r\n\r\n            return {\r\n                hours: hours,\r\n                dayPeriod: dayPeriod\r\n            }\r\n        },\r\n\r\n        set hours (val) {\r\n            this._hours = val;\r\n\r\n            var displayHours = this._getValidHoursFromDate(val);\r\n\r\n            this.displayHours = displayHours.hours;\r\n            this.dayPeriod = displayHours.dayPeriod;\r\n        },\r\n\r\n        get hours() {\r\n            return this._hours;\r\n        },\r\n\r\n        //  Events\r\n        // -------------------------------------------------\r\n\r\n        _onChangeRange: function (e) {\r\n            var $target = $(e.target),\r\n                name = $target.attr('name');\r\n            \r\n            this.d.timepickerIsActive = true;\r\n\r\n            this[name] = $target.val();\r\n            this._updateCurrentTime();\r\n            this.d._trigger('timeChange', [this.hours, this.minutes]);\r\n\r\n            this._handleDate(this.d.lastSelectedDate);\r\n            this.update()\r\n        },\r\n\r\n        _onSelectDate: function (e, data) {\r\n            this._handleDate(data);\r\n            this.update();\r\n        },\r\n\r\n        _onMouseEnterRange: function (e) {\r\n            var name = $(e.target).attr('name');\r\n            $('.datepicker--time-current-' + name, this.$timepicker).addClass('-focus-');\r\n        },\r\n\r\n        _onMouseOutRange: function (e) {\r\n            var name = $(e.target).attr('name');\r\n            if (this.d.inFocus) return; // Prevent removing focus when mouse out of range slider\r\n            $('.datepicker--time-current-' + name, this.$timepicker).removeClass('-focus-');\r\n        },\r\n\r\n        _onMouseUpRange: function (e) {\r\n            this.d.timepickerIsActive = false;\r\n        }\r\n    };\r\n})();\r\n", "/*! axe v4.2.1\n * Copyright (c) 2021 Deque Systems, Inc.\n *\n * Your use of this Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/.\n *\n * This entire copyright notice must appear in every copy of this file you\n * distribute or in any file that contains substantial portions of this source\n * code.\n */\n(function axeFunction(window) {\n  var global = window;\n  var document = window.document;\n  'use strict';\n  function _typeof(obj) {\n    '@babel/helpers - typeof';\n    if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n      _typeof = function _typeof(obj) {\n        return typeof obj;\n      };\n    } else {\n      _typeof = function _typeof(obj) {\n        return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n      };\n    }\n    return _typeof(obj);\n  }\n  var axe = axe || {};\n  axe.version = '4.2.1';\n  if (typeof define === 'function' && define.amd) {\n    define('axe-core', [], function() {\n      return axe;\n    });\n  }\n  if ((typeof module === 'undefined' ? 'undefined' : _typeof(module)) === 'object' && module.exports && typeof axeFunction.toString === 'function') {\n    axe.source = '(' + axeFunction.toString() + ')(typeof window === \"object\" ? window : this);';\n    module.exports = axe;\n  }\n  if (typeof window.getComputedStyle === 'function') {\n    window.axe = axe;\n  }\n  var commons;\n  function SupportError(error) {\n    this.name = 'SupportError';\n    this.cause = error.cause;\n    this.message = '`'.concat(error.cause, '` - feature unsupported in your environment.');\n    if (error.ruleId) {\n      this.ruleId = error.ruleId;\n      this.message += ' Skipping '.concat(this.ruleId, ' rule.');\n    }\n    this.stack = new Error().stack;\n  }\n  SupportError.prototype = Object.create(Error.prototype);\n  SupportError.prototype.constructor = SupportError;\n  'use strict';\n  function _objectWithoutProperties(source, excluded) {\n    if (source == null) {\n      return {};\n    }\n    var target = _objectWithoutPropertiesLoose(source, excluded);\n    var key, i;\n    if (Object.getOwnPropertySymbols) {\n      var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n      for (i = 0; i < sourceSymbolKeys.length; i++) {\n        key = sourceSymbolKeys[i];\n        if (excluded.indexOf(key) >= 0) {\n          continue;\n        }\n        if (!Object.prototype.propertyIsEnumerable.call(source, key)) {\n          continue;\n        }\n        target[key] = source[key];\n      }\n    }\n    return target;\n  }\n  function _objectWithoutPropertiesLoose(source, excluded) {\n    if (source == null) {\n      return {};\n    }\n    var target = {};\n    var sourceKeys = Object.keys(source);\n    var key, i;\n    for (i = 0; i < sourceKeys.length; i++) {\n      key = sourceKeys[i];\n      if (excluded.indexOf(key) >= 0) {\n        continue;\n      }\n      target[key] = source[key];\n    }\n    return target;\n  }\n  function _defineProperty(obj, key, value) {\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n    return obj;\n  }\n  function _inherits(subClass, superClass) {\n    if (typeof superClass !== 'function' && superClass !== null) {\n      throw new TypeError('Super expression must either be null or a function');\n    }\n    subClass.prototype = Object.create(superClass && superClass.prototype, {\n      constructor: {\n        value: subClass,\n        writable: true,\n        configurable: true\n      }\n    });\n    if (superClass) {\n      _setPrototypeOf(subClass, superClass);\n    }\n  }\n  function _setPrototypeOf(o, p) {\n    _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n      o.__proto__ = p;\n      return o;\n    };\n    return _setPrototypeOf(o, p);\n  }\n  function _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n      var Super = _getPrototypeOf(Derived), result;\n      if (hasNativeReflectConstruct) {\n        var NewTarget = _getPrototypeOf(this).constructor;\n        result = Reflect.construct(Super, arguments, NewTarget);\n      } else {\n        result = Super.apply(this, arguments);\n      }\n      return _possibleConstructorReturn(this, result);\n    };\n  }\n  function _possibleConstructorReturn(self, call) {\n    if (call && (_typeof(call) === 'object' || typeof call === 'function')) {\n      return call;\n    }\n    return _assertThisInitialized(self);\n  }\n  function _assertThisInitialized(self) {\n    if (self === void 0) {\n      throw new ReferenceError('this hasn\\'t been initialised - super() hasn\\'t been called');\n    }\n    return self;\n  }\n  function _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct) {\n      return false;\n    }\n    if (Reflect.construct.sham) {\n      return false;\n    }\n    if (typeof Proxy === 'function') {\n      return true;\n    }\n    try {\n      Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\n      return true;\n    } catch (e) {\n      return false;\n    }\n  }\n  function _getPrototypeOf(o) {\n    _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n      return o.__proto__ || Object.getPrototypeOf(o);\n    };\n    return _getPrototypeOf(o);\n  }\n  function _toConsumableArray(arr) {\n    return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n  }\n  function _nonIterableSpread() {\n    throw new TypeError('Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n  }\n  function _iterableToArray(iter) {\n    if (typeof Symbol !== 'undefined' && Symbol.iterator in Object(iter)) {\n      return Array.from(iter);\n    }\n  }\n  function _arrayWithoutHoles(arr) {\n    if (Array.isArray(arr)) {\n      return _arrayLikeToArray(arr);\n    }\n  }\n  function _slicedToArray(arr, i) {\n    return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n  }\n  function _nonIterableRest() {\n    throw new TypeError('Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n  }\n  function _iterableToArrayLimit(arr, i) {\n    if (typeof Symbol === 'undefined' || !(Symbol.iterator in Object(arr))) {\n      return;\n    }\n    var _arr = [];\n    var _n = true;\n    var _d = false;\n    var _e = undefined;\n    try {\n      for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n        _arr.push(_s.value);\n        if (i && _arr.length === i) {\n          break;\n        }\n      }\n    } catch (err) {\n      _d = true;\n      _e = err;\n    } finally {\n      try {\n        if (!_n && _i['return'] != null) {\n          _i['return']();\n        }\n      } finally {\n        if (_d) {\n          throw _e;\n        }\n      }\n    }\n    return _arr;\n  }\n  function _arrayWithHoles(arr) {\n    if (Array.isArray(arr)) {\n      return arr;\n    }\n  }\n  function _extends() {\n    _extends = Object.assign || function(target) {\n      for (var i = 1; i < arguments.length; i++) {\n        var source = arguments[i];\n        for (var key in source) {\n          if (Object.prototype.hasOwnProperty.call(source, key)) {\n            target[key] = source[key];\n          }\n        }\n      }\n      return target;\n    };\n    return _extends.apply(this, arguments);\n  }\n  function _classCallCheck(instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError('Cannot call a class as a function');\n    }\n  }\n  function _defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if ('value' in descriptor) {\n        descriptor.writable = true;\n      }\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  function _createClass(Constructor, protoProps, staticProps) {\n    if (protoProps) {\n      _defineProperties(Constructor.prototype, protoProps);\n    }\n    if (staticProps) {\n      _defineProperties(Constructor, staticProps);\n    }\n    return Constructor;\n  }\n  function _createForOfIteratorHelper(o, allowArrayLike) {\n    var it;\n    if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {\n      if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === 'number') {\n        if (it) {\n          o = it;\n        }\n        var i = 0;\n        var F = function F() {};\n        return {\n          s: F,\n          n: function n() {\n            if (i >= o.length) {\n              return {\n                done: true\n              };\n            }\n            return {\n              done: false,\n              value: o[i++]\n            };\n          },\n          e: function e(_e2) {\n            throw _e2;\n          },\n          f: F\n        };\n      }\n      throw new TypeError('Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n    }\n    var normalCompletion = true, didErr = false, err;\n    return {\n      s: function s() {\n        it = o[Symbol.iterator]();\n      },\n      n: function n() {\n        var step = it.next();\n        normalCompletion = step.done;\n        return step;\n      },\n      e: function e(_e3) {\n        didErr = true;\n        err = _e3;\n      },\n      f: function f() {\n        try {\n          if (!normalCompletion && it['return'] != null) {\n            it['return']();\n          }\n        } finally {\n          if (didErr) {\n            throw err;\n          }\n        }\n      }\n    };\n  }\n  function _unsupportedIterableToArray(o, minLen) {\n    if (!o) {\n      return;\n    }\n    if (typeof o === 'string') {\n      return _arrayLikeToArray(o, minLen);\n    }\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === 'Object' && o.constructor) {\n      n = o.constructor.name;\n    }\n    if (n === 'Map' || n === 'Set') {\n      return Array.from(o);\n    }\n    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) {\n      return _arrayLikeToArray(o, minLen);\n    }\n  }\n  function _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length) {\n      len = arr.length;\n    }\n    for (var i = 0, arr2 = new Array(len); i < len; i++) {\n      arr2[i] = arr[i];\n    }\n    return arr2;\n  }\n  function _typeof(obj) {\n    '@babel/helpers - typeof';\n    if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n      _typeof = function _typeof(obj) {\n        return typeof obj;\n      };\n    } else {\n      _typeof = function _typeof(obj) {\n        return obj && typeof Symbol === 'function' && obj.constructor === Symbol && obj !== Symbol.prototype ? 'symbol' : typeof obj;\n      };\n    }\n    return _typeof(obj);\n  }\n  (function() {\n    var __create = Object.create;\n    var __defProp = Object.defineProperty;\n    var __getProtoOf = Object.getPrototypeOf;\n    var __hasOwnProp = Object.prototype.hasOwnProperty;\n    var __getOwnPropNames = Object.getOwnPropertyNames;\n    var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n    var __markAsModule = function __markAsModule(target) {\n      return __defProp(target, '__esModule', {\n        value: true\n      });\n    };\n    var __commonJS = function __commonJS(callback, module) {\n      return function() {\n        if (!module) {\n          module = {\n            exports: {}\n          };\n          callback(module.exports, module);\n        }\n        return module.exports;\n      };\n    };\n    var __export = function __export(target, all) {\n      __markAsModule(target);\n      for (var name in all) {\n        __defProp(target, name, {\n          get: all[name],\n          enumerable: true\n        });\n      }\n    };\n    var __exportStar = function __exportStar(target, module) {\n      __markAsModule(target);\n      if (_typeof(module) === 'object' || typeof module === 'function') {\n        var _iterator = _createForOfIteratorHelper(__getOwnPropNames(module)), _step;\n        try {\n          var _loop = function _loop() {\n            var key = _step.value;\n            if (!__hasOwnProp.call(target, key) && key !== 'default') {\n              __defProp(target, key, {\n                get: function get() {\n                  return module[key];\n                },\n                enumerable: __getOwnPropDesc(module, key).enumerable\n              });\n            }\n          };\n          for (_iterator.s(); !(_step = _iterator.n()).done; ) {\n            _loop();\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      }\n      return target;\n    };\n    var __toModule = function __toModule(module) {\n      if (module && module.__esModule) {\n        return module;\n      }\n      return __exportStar(__defProp(__create(__getProtoOf(module)), 'default', {\n        value: module,\n        enumerable: true\n      }), module);\n    };\n    var require_utils = __commonJS(function(exports) {\n      'use strict';\n      Object.defineProperty(exports, '__esModule', {\n        value: true\n      });\n      function isIdentStart(c) {\n        return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c === '-' || c === '_';\n      }\n      exports.isIdentStart = isIdentStart;\n      function isIdent(c) {\n        return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c >= '0' && c <= '9' || c === '-' || c === '_';\n      }\n      exports.isIdent = isIdent;\n      function isHex(c) {\n        return c >= 'a' && c <= 'f' || c >= 'A' && c <= 'F' || c >= '0' && c <= '9';\n      }\n      exports.isHex = isHex;\n      function escapeIdentifier(s) {\n        var len = s.length;\n        var result = '';\n        var i = 0;\n        while (i < len) {\n          var chr = s.charAt(i);\n          if (exports.identSpecialChars[chr]) {\n            result += '\\\\' + chr;\n          } else {\n            if (!(chr === '_' || chr === '-' || chr >= 'A' && chr <= 'Z' || chr >= 'a' && chr <= 'z' || i !== 0 && chr >= '0' && chr <= '9')) {\n              var charCode = chr.charCodeAt(0);\n              if ((charCode & 63488) === 55296) {\n                var extraCharCode = s.charCodeAt(i++);\n                if ((charCode & 64512) !== 55296 || (extraCharCode & 64512) !== 56320) {\n                  throw Error('UCS-2(decode): illegal sequence');\n                }\n                charCode = ((charCode & 1023) << 10) + (extraCharCode & 1023) + 65536;\n              }\n              result += '\\\\' + charCode.toString(16) + ' ';\n            } else {\n              result += chr;\n            }\n          }\n          i++;\n        }\n        return result;\n      }\n      exports.escapeIdentifier = escapeIdentifier;\n      function escapeStr(s) {\n        var len = s.length;\n        var result = '';\n        var i = 0;\n        var replacement;\n        while (i < len) {\n          var chr = s.charAt(i);\n          if (chr === '\"') {\n            chr = '\\\\\"';\n          } else if (chr === '\\\\') {\n            chr = '\\\\\\\\';\n          } else if ((replacement = exports.strReplacementsRev[chr]) !== void 0) {\n            chr = replacement;\n          }\n          result += chr;\n          i++;\n        }\n        return '\"' + result + '\"';\n      }\n      exports.escapeStr = escapeStr;\n      exports.identSpecialChars = {\n        '!': true,\n        '\"': true,\n        '#': true,\n        $: true,\n        '%': true,\n        '&': true,\n        '\\'': true,\n        '(': true,\n        ')': true,\n        '*': true,\n        '+': true,\n        ',': true,\n        '.': true,\n        '/': true,\n        ';': true,\n        '<': true,\n        '=': true,\n        '>': true,\n        '?': true,\n        '@': true,\n        '[': true,\n        '\\\\': true,\n        ']': true,\n        '^': true,\n        '`': true,\n        '{': true,\n        '|': true,\n        '}': true,\n        '~': true\n      };\n      exports.strReplacementsRev = {\n        '\\n': '\\\\n',\n        '\\r': '\\\\r',\n        '\\t': '\\\\t',\n        '\\f': '\\\\f',\n        '\\v': '\\\\v'\n      };\n      exports.singleQuoteEscapeChars = {\n        n: '\\n',\n        r: '\\r',\n        t: '\\t',\n        f: '\\f',\n        '\\\\': '\\\\',\n        '\\'': '\\''\n      };\n      exports.doubleQuotesEscapeChars = {\n        n: '\\n',\n        r: '\\r',\n        t: '\\t',\n        f: '\\f',\n        '\\\\': '\\\\',\n        '\"': '\"'\n      };\n    });\n    var require_parser_context = __commonJS(function(exports) {\n      'use strict';\n      Object.defineProperty(exports, '__esModule', {\n        value: true\n      });\n      var utils_1 = require_utils();\n      function parseCssSelector(str, pos, pseudos, attrEqualityMods, ruleNestingOperators, substitutesEnabled) {\n        var l = str.length;\n        var chr = '';\n        function getStr(quote, escapeTable) {\n          var result = '';\n          pos++;\n          chr = str.charAt(pos);\n          while (pos < l) {\n            if (chr === quote) {\n              pos++;\n              return result;\n            } else if (chr === '\\\\') {\n              pos++;\n              chr = str.charAt(pos);\n              var esc = void 0;\n              if (chr === quote) {\n                result += quote;\n              } else if ((esc = escapeTable[chr]) !== void 0) {\n                result += esc;\n              } else if (utils_1.isHex(chr)) {\n                var hex = chr;\n                pos++;\n                chr = str.charAt(pos);\n                while (utils_1.isHex(chr)) {\n                  hex += chr;\n                  pos++;\n                  chr = str.charAt(pos);\n                }\n                if (chr === ' ') {\n                  pos++;\n                  chr = str.charAt(pos);\n                }\n                result += String.fromCharCode(parseInt(hex, 16));\n                continue;\n              } else {\n                result += chr;\n              }\n            } else {\n              result += chr;\n            }\n            pos++;\n            chr = str.charAt(pos);\n          }\n          return result;\n        }\n        function getIdent() {\n          var result = '';\n          chr = str.charAt(pos);\n          while (pos < l) {\n            if (utils_1.isIdent(chr)) {\n              result += chr;\n            } else if (chr === '\\\\') {\n              pos++;\n              if (pos >= l) {\n                throw Error('Expected symbol but end of file reached.');\n              }\n              chr = str.charAt(pos);\n              if (utils_1.identSpecialChars[chr]) {\n                result += chr;\n              } else if (utils_1.isHex(chr)) {\n                var hex = chr;\n                pos++;\n                chr = str.charAt(pos);\n                while (utils_1.isHex(chr)) {\n                  hex += chr;\n                  pos++;\n                  chr = str.charAt(pos);\n                }\n                if (chr === ' ') {\n                  pos++;\n                  chr = str.charAt(pos);\n                }\n                result += String.fromCharCode(parseInt(hex, 16));\n                continue;\n              } else {\n                result += chr;\n              }\n            } else {\n              return result;\n            }\n            pos++;\n            chr = str.charAt(pos);\n          }\n          return result;\n        }\n        function skipWhitespace() {\n          chr = str.charAt(pos);\n          var result = false;\n          while (chr === ' ' || chr === '\\t' || chr === '\\n' || chr === '\\r' || chr === '\\f') {\n            result = true;\n            pos++;\n            chr = str.charAt(pos);\n          }\n          return result;\n        }\n        function parse2() {\n          var res = parseSelector();\n          if (pos < l) {\n            throw Error('Rule expected but \"' + str.charAt(pos) + '\" found.');\n          }\n          return res;\n        }\n        function parseSelector() {\n          var selector = parseSingleSelector();\n          if (!selector) {\n            return null;\n          }\n          var res = selector;\n          chr = str.charAt(pos);\n          while (chr === ',') {\n            pos++;\n            skipWhitespace();\n            if (res.type !== 'selectors') {\n              res = {\n                type: 'selectors',\n                selectors: [ selector ]\n              };\n            }\n            selector = parseSingleSelector();\n            if (!selector) {\n              throw Error('Rule expected after \",\".');\n            }\n            res.selectors.push(selector);\n          }\n          return res;\n        }\n        function parseSingleSelector() {\n          skipWhitespace();\n          var selector = {\n            type: 'ruleSet'\n          };\n          var rule3 = parseRule();\n          if (!rule3) {\n            return null;\n          }\n          var currentRule = selector;\n          while (rule3) {\n            rule3.type = 'rule';\n            currentRule.rule = rule3;\n            currentRule = rule3;\n            skipWhitespace();\n            chr = str.charAt(pos);\n            if (pos >= l || chr === ',' || chr === ')') {\n              break;\n            }\n            if (ruleNestingOperators[chr]) {\n              var op = chr;\n              pos++;\n              skipWhitespace();\n              rule3 = parseRule();\n              if (!rule3) {\n                throw Error('Rule expected after \"' + op + '\".');\n              }\n              rule3.nestingOperator = op;\n            } else {\n              rule3 = parseRule();\n              if (rule3) {\n                rule3.nestingOperator = null;\n              }\n            }\n          }\n          return selector;\n        }\n        function parseRule() {\n          var rule3 = null;\n          while (pos < l) {\n            chr = str.charAt(pos);\n            if (chr === '*') {\n              pos++;\n              (rule3 = rule3 || {}).tagName = '*';\n            } else if (utils_1.isIdentStart(chr) || chr === '\\\\') {\n              (rule3 = rule3 || {}).tagName = getIdent();\n            } else if (chr === '.') {\n              pos++;\n              rule3 = rule3 || {};\n              (rule3.classNames = rule3.classNames || []).push(getIdent());\n            } else if (chr === '#') {\n              pos++;\n              (rule3 = rule3 || {}).id = getIdent();\n            } else if (chr === '[') {\n              pos++;\n              skipWhitespace();\n              var attr = {\n                name: getIdent()\n              };\n              skipWhitespace();\n              if (chr === ']') {\n                pos++;\n              } else {\n                var operator = '';\n                if (attrEqualityMods[chr]) {\n                  operator = chr;\n                  pos++;\n                  chr = str.charAt(pos);\n                }\n                if (pos >= l) {\n                  throw Error('Expected \"=\" but end of file reached.');\n                }\n                if (chr !== '=') {\n                  throw Error('Expected \"=\" but \"' + chr + '\" found.');\n                }\n                attr.operator = operator + '=';\n                pos++;\n                skipWhitespace();\n                var attrValue = '';\n                attr.valueType = 'string';\n                if (chr === '\"') {\n                  attrValue = getStr('\"', utils_1.doubleQuotesEscapeChars);\n                } else if (chr === '\\'') {\n                  attrValue = getStr('\\'', utils_1.singleQuoteEscapeChars);\n                } else if (substitutesEnabled && chr === '$') {\n                  pos++;\n                  attrValue = getIdent();\n                  attr.valueType = 'substitute';\n                } else {\n                  while (pos < l) {\n                    if (chr === ']') {\n                      break;\n                    }\n                    attrValue += chr;\n                    pos++;\n                    chr = str.charAt(pos);\n                  }\n                  attrValue = attrValue.trim();\n                }\n                skipWhitespace();\n                if (pos >= l) {\n                  throw Error('Expected \"]\" but end of file reached.');\n                }\n                if (chr !== ']') {\n                  throw Error('Expected \"]\" but \"' + chr + '\" found.');\n                }\n                pos++;\n                attr.value = attrValue;\n              }\n              rule3 = rule3 || {};\n              (rule3.attrs = rule3.attrs || []).push(attr);\n            } else if (chr === ':') {\n              pos++;\n              var pseudoName = getIdent();\n              var pseudo = {\n                name: pseudoName\n              };\n              if (chr === '(') {\n                pos++;\n                var value = '';\n                skipWhitespace();\n                if (pseudos[pseudoName] === 'selector') {\n                  pseudo.valueType = 'selector';\n                  value = parseSelector();\n                } else {\n                  pseudo.valueType = pseudos[pseudoName] || 'string';\n                  if (chr === '\"') {\n                    value = getStr('\"', utils_1.doubleQuotesEscapeChars);\n                  } else if (chr === '\\'') {\n                    value = getStr('\\'', utils_1.singleQuoteEscapeChars);\n                  } else if (substitutesEnabled && chr === '$') {\n                    pos++;\n                    value = getIdent();\n                    pseudo.valueType = 'substitute';\n                  } else {\n                    while (pos < l) {\n                      if (chr === ')') {\n                        break;\n                      }\n                      value += chr;\n                      pos++;\n                      chr = str.charAt(pos);\n                    }\n                    value = value.trim();\n                  }\n                  skipWhitespace();\n                }\n                if (pos >= l) {\n                  throw Error('Expected \")\" but end of file reached.');\n                }\n                if (chr !== ')') {\n                  throw Error('Expected \")\" but \"' + chr + '\" found.');\n                }\n                pos++;\n                pseudo.value = value;\n              }\n              rule3 = rule3 || {};\n              (rule3.pseudos = rule3.pseudos || []).push(pseudo);\n            } else {\n              break;\n            }\n          }\n          return rule3;\n        }\n        return parse2();\n      }\n      exports.parseCssSelector = parseCssSelector;\n    });\n    var require_render = __commonJS(function(exports) {\n      'use strict';\n      Object.defineProperty(exports, '__esModule', {\n        value: true\n      });\n      var utils_1 = require_utils();\n      function renderEntity(entity) {\n        var res = '';\n        switch (entity.type) {\n         case 'ruleSet':\n          var currentEntity = entity.rule;\n          var parts = [];\n          while (currentEntity) {\n            if (currentEntity.nestingOperator) {\n              parts.push(currentEntity.nestingOperator);\n            }\n            parts.push(renderEntity(currentEntity));\n            currentEntity = currentEntity.rule;\n          }\n          res = parts.join(' ');\n          break;\n\n         case 'selectors':\n          res = entity.selectors.map(renderEntity).join(', ');\n          break;\n\n         case 'rule':\n          if (entity.tagName) {\n            if (entity.tagName === '*') {\n              res = '*';\n            } else {\n              res = utils_1.escapeIdentifier(entity.tagName);\n            }\n          }\n          if (entity.id) {\n            res += '#' + utils_1.escapeIdentifier(entity.id);\n          }\n          if (entity.classNames) {\n            res += entity.classNames.map(function(cn) {\n              return '.' + utils_1.escapeIdentifier(cn);\n            }).join('');\n          }\n          if (entity.attrs) {\n            res += entity.attrs.map(function(attr) {\n              if ('operator' in attr) {\n                if (attr.valueType === 'substitute') {\n                  return '[' + utils_1.escapeIdentifier(attr.name) + attr.operator + '$' + attr.value + ']';\n                } else {\n                  return '[' + utils_1.escapeIdentifier(attr.name) + attr.operator + utils_1.escapeStr(attr.value) + ']';\n                }\n              } else {\n                return '[' + utils_1.escapeIdentifier(attr.name) + ']';\n              }\n            }).join('');\n          }\n          if (entity.pseudos) {\n            res += entity.pseudos.map(function(pseudo) {\n              if (pseudo.valueType) {\n                if (pseudo.valueType === 'selector') {\n                  return ':' + utils_1.escapeIdentifier(pseudo.name) + '(' + renderEntity(pseudo.value) + ')';\n                } else if (pseudo.valueType === 'substitute') {\n                  return ':' + utils_1.escapeIdentifier(pseudo.name) + '($' + pseudo.value + ')';\n                } else if (pseudo.valueType === 'numeric') {\n                  return ':' + utils_1.escapeIdentifier(pseudo.name) + '(' + pseudo.value + ')';\n                } else {\n                  return ':' + utils_1.escapeIdentifier(pseudo.name) + '(' + utils_1.escapeIdentifier(pseudo.value) + ')';\n                }\n              } else {\n                return ':' + utils_1.escapeIdentifier(pseudo.name);\n              }\n            }).join('');\n          }\n          break;\n\n         default:\n          throw Error('Unknown entity type: \"' + entity.type + '\".');\n        }\n        return res;\n      }\n      exports.renderEntity = renderEntity;\n    });\n    var require_lib = __commonJS(function(exports) {\n      'use strict';\n      Object.defineProperty(exports, '__esModule', {\n        value: true\n      });\n      var parser_context_1 = require_parser_context();\n      var render_1 = require_render();\n      var CssSelectorParser3 = function() {\n        function CssSelectorParser4() {\n          this.pseudos = {};\n          this.attrEqualityMods = {};\n          this.ruleNestingOperators = {};\n          this.substitutesEnabled = false;\n        }\n        CssSelectorParser4.prototype.registerSelectorPseudos = function() {\n          var pseudos = [];\n          for (var _i = 0; _i < arguments.length; _i++) {\n            pseudos[_i] = arguments[_i];\n          }\n          for (var _a = 0, pseudos_1 = pseudos; _a < pseudos_1.length; _a++) {\n            var pseudo = pseudos_1[_a];\n            this.pseudos[pseudo] = 'selector';\n          }\n          return this;\n        };\n        CssSelectorParser4.prototype.unregisterSelectorPseudos = function() {\n          var pseudos = [];\n          for (var _i = 0; _i < arguments.length; _i++) {\n            pseudos[_i] = arguments[_i];\n          }\n          for (var _a = 0, pseudos_2 = pseudos; _a < pseudos_2.length; _a++) {\n            var pseudo = pseudos_2[_a];\n            delete this.pseudos[pseudo];\n          }\n          return this;\n        };\n        CssSelectorParser4.prototype.registerNumericPseudos = function() {\n          var pseudos = [];\n          for (var _i = 0; _i < arguments.length; _i++) {\n            pseudos[_i] = arguments[_i];\n          }\n          for (var _a = 0, pseudos_3 = pseudos; _a < pseudos_3.length; _a++) {\n            var pseudo = pseudos_3[_a];\n            this.pseudos[pseudo] = 'numeric';\n          }\n          return this;\n        };\n        CssSelectorParser4.prototype.unregisterNumericPseudos = function() {\n          var pseudos = [];\n          for (var _i = 0; _i < arguments.length; _i++) {\n            pseudos[_i] = arguments[_i];\n          }\n          for (var _a = 0, pseudos_4 = pseudos; _a < pseudos_4.length; _a++) {\n            var pseudo = pseudos_4[_a];\n            delete this.pseudos[pseudo];\n          }\n          return this;\n        };\n        CssSelectorParser4.prototype.registerNestingOperators = function() {\n          var operators = [];\n          for (var _i = 0; _i < arguments.length; _i++) {\n            operators[_i] = arguments[_i];\n          }\n          for (var _a = 0, operators_1 = operators; _a < operators_1.length; _a++) {\n            var operator = operators_1[_a];\n            this.ruleNestingOperators[operator] = true;\n          }\n          return this;\n        };\n        CssSelectorParser4.prototype.unregisterNestingOperators = function() {\n          var operators = [];\n          for (var _i = 0; _i < arguments.length; _i++) {\n            operators[_i] = arguments[_i];\n          }\n          for (var _a = 0, operators_2 = operators; _a < operators_2.length; _a++) {\n            var operator = operators_2[_a];\n            delete this.ruleNestingOperators[operator];\n          }\n          return this;\n        };\n        CssSelectorParser4.prototype.registerAttrEqualityMods = function() {\n          var mods = [];\n          for (var _i = 0; _i < arguments.length; _i++) {\n            mods[_i] = arguments[_i];\n          }\n          for (var _a = 0, mods_1 = mods; _a < mods_1.length; _a++) {\n            var mod = mods_1[_a];\n            this.attrEqualityMods[mod] = true;\n          }\n          return this;\n        };\n        CssSelectorParser4.prototype.unregisterAttrEqualityMods = function() {\n          var mods = [];\n          for (var _i = 0; _i < arguments.length; _i++) {\n            mods[_i] = arguments[_i];\n          }\n          for (var _a = 0, mods_2 = mods; _a < mods_2.length; _a++) {\n            var mod = mods_2[_a];\n            delete this.attrEqualityMods[mod];\n          }\n          return this;\n        };\n        CssSelectorParser4.prototype.enableSubstitutes = function() {\n          this.substitutesEnabled = true;\n          return this;\n        };\n        CssSelectorParser4.prototype.disableSubstitutes = function() {\n          this.substitutesEnabled = false;\n          return this;\n        };\n        CssSelectorParser4.prototype.parse = function(str) {\n          return parser_context_1.parseCssSelector(str, 0, this.pseudos, this.attrEqualityMods, this.ruleNestingOperators, this.substitutesEnabled);\n        };\n        CssSelectorParser4.prototype.render = function(path) {\n          return render_1.renderEntity(path).trim();\n        };\n        return CssSelectorParser4;\n      }();\n      exports.CssSelectorParser = CssSelectorParser3;\n    });\n    var require_noop = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function() {};\n    });\n    var require_is_value = __commonJS(function(exports, module) {\n      'use strict';\n      var _undefined = require_noop()();\n      module.exports = function(val) {\n        return val !== _undefined && val !== null;\n      };\n    });\n    var require_normalize_options = __commonJS(function(exports, module) {\n      'use strict';\n      var isValue = require_is_value();\n      var forEach = Array.prototype.forEach;\n      var create = Object.create;\n      var process2 = function process2(src, obj) {\n        var key;\n        for (key in src) {\n          obj[key] = src[key];\n        }\n      };\n      module.exports = function(opts1) {\n        var result = create(null);\n        forEach.call(arguments, function(options) {\n          if (!isValue(options)) {\n            return;\n          }\n          process2(Object(options), result);\n        });\n        return result;\n      };\n    });\n    var require_is_implemented = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function() {\n        var sign = Math.sign;\n        if (typeof sign !== 'function') {\n          return false;\n        }\n        return sign(10) === 1 && sign(-20) === -1;\n      };\n    });\n    var require_shim = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function(value) {\n        value = Number(value);\n        if (isNaN(value) || value === 0) {\n          return value;\n        }\n        return value > 0 ? 1 : -1;\n      };\n    });\n    var require_sign = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = require_is_implemented()() ? Math.sign : require_shim();\n    });\n    var require_to_integer = __commonJS(function(exports, module) {\n      'use strict';\n      var sign = require_sign();\n      var abs = Math.abs;\n      var floor = Math.floor;\n      module.exports = function(value) {\n        if (isNaN(value)) {\n          return 0;\n        }\n        value = Number(value);\n        if (value === 0 || !isFinite(value)) {\n          return value;\n        }\n        return sign(value) * floor(abs(value));\n      };\n    });\n    var require_to_pos_integer = __commonJS(function(exports, module) {\n      'use strict';\n      var toInteger = require_to_integer();\n      var max = Math.max;\n      module.exports = function(value) {\n        return max(0, toInteger(value));\n      };\n    });\n    var require_resolve_length = __commonJS(function(exports, module) {\n      'use strict';\n      var toPosInt = require_to_pos_integer();\n      module.exports = function(optsLength, fnLength, isAsync) {\n        var length;\n        if (isNaN(optsLength)) {\n          length = fnLength;\n          if (!(length >= 0)) {\n            return 1;\n          }\n          if (isAsync && length) {\n            return length - 1;\n          }\n          return length;\n        }\n        if (optsLength === false) {\n          return false;\n        }\n        return toPosInt(optsLength);\n      };\n    });\n    var require_valid_callable = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function(fn) {\n        if (typeof fn !== 'function') {\n          throw new TypeError(fn + ' is not a function');\n        }\n        return fn;\n      };\n    });\n    var require_valid_value = __commonJS(function(exports, module) {\n      'use strict';\n      var isValue = require_is_value();\n      module.exports = function(value) {\n        if (!isValue(value)) {\n          throw new TypeError('Cannot use null or undefined');\n        }\n        return value;\n      };\n    });\n    var require_iterate = __commonJS(function(exports, module) {\n      'use strict';\n      var callable = require_valid_callable();\n      var value = require_valid_value();\n      var bind = Function.prototype.bind;\n      var call = Function.prototype.call;\n      var keys = Object.keys;\n      var objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;\n      module.exports = function(method, defVal) {\n        return function(obj, cb) {\n          var list, thisArg = arguments[2], compareFn = arguments[3];\n          obj = Object(value(obj));\n          callable(cb);\n          list = keys(obj);\n          if (compareFn) {\n            list.sort(typeof compareFn === 'function' ? bind.call(compareFn, obj) : void 0);\n          }\n          if (typeof method !== 'function') {\n            method = list[method];\n          }\n          return call.call(method, list, function(key, index) {\n            if (!objPropertyIsEnumerable.call(obj, key)) {\n              return defVal;\n            }\n            return call.call(cb, thisArg, obj[key], key, obj, index);\n          });\n        };\n      };\n    });\n    var require_for_each = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = require_iterate()('forEach');\n    });\n    var require_registered_extensions = __commonJS(function() {\n      'use strict';\n    });\n    var require_is_implemented2 = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function() {\n        var assign = Object.assign, obj;\n        if (typeof assign !== 'function') {\n          return false;\n        }\n        obj = {\n          foo: 'raz'\n        };\n        assign(obj, {\n          bar: 'dwa'\n        }, {\n          trzy: 'trzy'\n        });\n        return obj.foo + obj.bar + obj.trzy === 'razdwatrzy';\n      };\n    });\n    var require_is_implemented3 = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function() {\n        try {\n          Object.keys('primitive');\n          return true;\n        } catch (e) {\n          return false;\n        }\n      };\n    });\n    var require_shim2 = __commonJS(function(exports, module) {\n      'use strict';\n      var isValue = require_is_value();\n      var keys = Object.keys;\n      module.exports = function(object) {\n        return keys(isValue(object) ? Object(object) : object);\n      };\n    });\n    var require_keys = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = require_is_implemented3()() ? Object.keys : require_shim2();\n    });\n    var require_shim3 = __commonJS(function(exports, module) {\n      'use strict';\n      var keys = require_keys();\n      var value = require_valid_value();\n      var max = Math.max;\n      module.exports = function(dest, src) {\n        var error, i, length = max(arguments.length, 2), assign;\n        dest = Object(value(dest));\n        assign = function assign(key) {\n          try {\n            dest[key] = src[key];\n          } catch (e) {\n            if (!error) {\n              error = e;\n            }\n          }\n        };\n        for (i = 1; i < length; ++i) {\n          src = arguments[i];\n          keys(src).forEach(assign);\n        }\n        if (error !== void 0) {\n          throw error;\n        }\n        return dest;\n      };\n    });\n    var require_assign = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = require_is_implemented2()() ? Object.assign : require_shim3();\n    });\n    var require_is_object = __commonJS(function(exports, module) {\n      'use strict';\n      var isValue = require_is_value();\n      var map = {\n        function: true,\n        object: true\n      };\n      module.exports = function(value) {\n        return isValue(value) && map[_typeof(value)] || false;\n      };\n    });\n    var require_custom = __commonJS(function(exports, module) {\n      'use strict';\n      var assign = require_assign();\n      var isObject = require_is_object();\n      var isValue = require_is_value();\n      var captureStackTrace = Error.captureStackTrace;\n      module.exports = function(message) {\n        var err2 = new Error(message), code = arguments[1], ext = arguments[2];\n        if (!isValue(ext)) {\n          if (isObject(code)) {\n            ext = code;\n            code = null;\n          }\n        }\n        if (isValue(ext)) {\n          assign(err2, ext);\n        }\n        if (isValue(code)) {\n          err2.code = code;\n        }\n        if (captureStackTrace) {\n          captureStackTrace(err2, module.exports);\n        }\n        return err2;\n      };\n    });\n    var require_mixin = __commonJS(function(exports, module) {\n      'use strict';\n      var value = require_valid_value();\n      var defineProperty = Object.defineProperty;\n      var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n      var getOwnPropertyNames = Object.getOwnPropertyNames;\n      var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n      module.exports = function(target, source) {\n        var error, sourceObject = Object(value(source));\n        target = Object(value(target));\n        getOwnPropertyNames(sourceObject).forEach(function(name) {\n          try {\n            defineProperty(target, name, getOwnPropertyDescriptor(source, name));\n          } catch (e) {\n            error = e;\n          }\n        });\n        if (typeof getOwnPropertySymbols === 'function') {\n          getOwnPropertySymbols(sourceObject).forEach(function(symbol) {\n            try {\n              defineProperty(target, symbol, getOwnPropertyDescriptor(source, symbol));\n            } catch (e) {\n              error = e;\n            }\n          });\n        }\n        if (error !== void 0) {\n          throw error;\n        }\n        return target;\n      };\n    });\n    var require_define_length = __commonJS(function(exports, module) {\n      'use strict';\n      var toPosInt = require_to_pos_integer();\n      var test = function test(arg1, arg2) {\n        return arg2;\n      };\n      var desc;\n      var defineProperty;\n      var generate;\n      var mixin;\n      try {\n        Object.defineProperty(test, 'length', {\n          configurable: true,\n          writable: false,\n          enumerable: false,\n          value: 1\n        });\n      } catch (ignore) {}\n      if (test.length === 1) {\n        desc = {\n          configurable: true,\n          writable: false,\n          enumerable: false\n        };\n        defineProperty = Object.defineProperty;\n        module.exports = function(fn, length) {\n          length = toPosInt(length);\n          if (fn.length === length) {\n            return fn;\n          }\n          desc.value = length;\n          return defineProperty(fn, 'length', desc);\n        };\n      } else {\n        mixin = require_mixin();\n        generate = function() {\n          var cache20 = [];\n          return function(length) {\n            var args, i = 0;\n            if (cache20[length]) {\n              return cache20[length];\n            }\n            args = [];\n            while (length--) {\n              args.push('a' + (++i).toString(36));\n            }\n            return new Function('fn', 'return function (' + args.join(', ') + ') { return fn.apply(this, arguments); };');\n          };\n        }();\n        module.exports = function(src, length) {\n          var target;\n          length = toPosInt(length);\n          if (src.length === length) {\n            return src;\n          }\n          target = generate(length)(src);\n          try {\n            mixin(target, src);\n          } catch (ignore) {}\n          return target;\n        };\n      }\n    });\n    var require_is = __commonJS(function(exports, module) {\n      'use strict';\n      var _undefined = void 0;\n      module.exports = function(value) {\n        return value !== _undefined && value !== null;\n      };\n    });\n    var require_is2 = __commonJS(function(exports, module) {\n      'use strict';\n      var isValue = require_is();\n      var possibleTypes = {\n        object: true,\n        function: true,\n        undefined: true\n      };\n      module.exports = function(value) {\n        if (!isValue(value)) {\n          return false;\n        }\n        return hasOwnProperty.call(possibleTypes, _typeof(value));\n      };\n    });\n    var require_is3 = __commonJS(function(exports, module) {\n      'use strict';\n      var isObject = require_is2();\n      module.exports = function(value) {\n        if (!isObject(value)) {\n          return false;\n        }\n        try {\n          if (!value.constructor) {\n            return false;\n          }\n          return value.constructor.prototype === value;\n        } catch (error) {\n          return false;\n        }\n      };\n    });\n    var require_is4 = __commonJS(function(exports, module) {\n      'use strict';\n      var isPrototype = require_is3();\n      module.exports = function(value) {\n        if (typeof value !== 'function') {\n          return false;\n        }\n        if (!hasOwnProperty.call(value, 'length')) {\n          return false;\n        }\n        try {\n          if (typeof value.length !== 'number') {\n            return false;\n          }\n          if (typeof value.call !== 'function') {\n            return false;\n          }\n          if (typeof value.apply !== 'function') {\n            return false;\n          }\n        } catch (error) {\n          return false;\n        }\n        return !isPrototype(value);\n      };\n    });\n    var require_is5 = __commonJS(function(exports, module) {\n      'use strict';\n      var isFunction = require_is4();\n      var classRe = /^\\s*class[\\s{/}]/;\n      var functionToString = Function.prototype.toString;\n      module.exports = function(value) {\n        if (!isFunction(value)) {\n          return false;\n        }\n        if (classRe.test(functionToString.call(value))) {\n          return false;\n        }\n        return true;\n      };\n    });\n    var require_is_implemented4 = __commonJS(function(exports, module) {\n      'use strict';\n      var str = 'razdwatrzy';\n      module.exports = function() {\n        if (typeof str.contains !== 'function') {\n          return false;\n        }\n        return str.contains('dwa') === true && str.contains('foo') === false;\n      };\n    });\n    var require_shim4 = __commonJS(function(exports, module) {\n      'use strict';\n      var indexOf = String.prototype.indexOf;\n      module.exports = function(searchString) {\n        return indexOf.call(this, searchString, arguments[1]) > -1;\n      };\n    });\n    var require_contains = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = require_is_implemented4()() ? String.prototype.contains : require_shim4();\n    });\n    var require_d = __commonJS(function(exports, module) {\n      'use strict';\n      var isValue = require_is();\n      var isPlainFunction = require_is5();\n      var assign = require_assign();\n      var normalizeOpts = require_normalize_options();\n      var contains6 = require_contains();\n      var d = module.exports = function(dscr, value) {\n        var c, e, w, options, desc;\n        if (arguments.length < 2 || typeof dscr !== 'string') {\n          options = value;\n          value = dscr;\n          dscr = null;\n        } else {\n          options = arguments[2];\n        }\n        if (isValue(dscr)) {\n          c = contains6.call(dscr, 'c');\n          e = contains6.call(dscr, 'e');\n          w = contains6.call(dscr, 'w');\n        } else {\n          c = w = true;\n          e = false;\n        }\n        desc = {\n          value: value,\n          configurable: c,\n          enumerable: e,\n          writable: w\n        };\n        return !options ? desc : assign(normalizeOpts(options), desc);\n      };\n      d.gs = function(dscr, get, set) {\n        var c, e, options, desc;\n        if (typeof dscr !== 'string') {\n          options = set;\n          set = get;\n          get = dscr;\n          dscr = null;\n        } else {\n          options = arguments[3];\n        }\n        if (!isValue(get)) {\n          get = void 0;\n        } else if (!isPlainFunction(get)) {\n          options = get;\n          get = set = void 0;\n        } else if (!isValue(set)) {\n          set = void 0;\n        } else if (!isPlainFunction(set)) {\n          options = set;\n          set = void 0;\n        }\n        if (isValue(dscr)) {\n          c = contains6.call(dscr, 'c');\n          e = contains6.call(dscr, 'e');\n        } else {\n          c = true;\n          e = false;\n        }\n        desc = {\n          get: get,\n          set: set,\n          configurable: c,\n          enumerable: e\n        };\n        return !options ? desc : assign(normalizeOpts(options), desc);\n      };\n    });\n    var require_event_emitter = __commonJS(function(exports, module) {\n      'use strict';\n      var d = require_d();\n      var callable = require_valid_callable();\n      var apply = Function.prototype.apply;\n      var call = Function.prototype.call;\n      var create = Object.create;\n      var defineProperty = Object.defineProperty;\n      var defineProperties = Object.defineProperties;\n      var hasOwnProperty2 = Object.prototype.hasOwnProperty;\n      var descriptor = {\n        configurable: true,\n        enumerable: false,\n        writable: true\n      };\n      var on;\n      var once;\n      var off;\n      var emit;\n      var methods;\n      var descriptors;\n      var base;\n      on = function on(type, listener) {\n        var data2;\n        callable(listener);\n        if (!hasOwnProperty2.call(this, '__ee__')) {\n          data2 = descriptor.value = create(null);\n          defineProperty(this, '__ee__', descriptor);\n          descriptor.value = null;\n        } else {\n          data2 = this.__ee__;\n        }\n        if (!data2[type]) {\n          data2[type] = listener;\n        } else if (_typeof(data2[type]) === 'object') {\n          data2[type].push(listener);\n        } else {\n          data2[type] = [ data2[type], listener ];\n        }\n        return this;\n      };\n      once = function once(type, listener) {\n        var _once, self2;\n        callable(listener);\n        self2 = this;\n        on.call(this, type, _once = function once2() {\n          off.call(self2, type, _once);\n          apply.call(listener, this, arguments);\n        });\n        _once.__eeOnceListener__ = listener;\n        return this;\n      };\n      off = function off(type, listener) {\n        var data2, listeners, candidate, i;\n        callable(listener);\n        if (!hasOwnProperty2.call(this, '__ee__')) {\n          return this;\n        }\n        data2 = this.__ee__;\n        if (!data2[type]) {\n          return this;\n        }\n        listeners = data2[type];\n        if (_typeof(listeners) === 'object') {\n          for (i = 0; candidate = listeners[i]; ++i) {\n            if (candidate === listener || candidate.__eeOnceListener__ === listener) {\n              if (listeners.length === 2) {\n                data2[type] = listeners[i ? 0 : 1];\n              } else {\n                listeners.splice(i, 1);\n              }\n            }\n          }\n        } else {\n          if (listeners === listener || listeners.__eeOnceListener__ === listener) {\n            delete data2[type];\n          }\n        }\n        return this;\n      };\n      emit = function emit(type) {\n        var i, l, listener, listeners, args;\n        if (!hasOwnProperty2.call(this, '__ee__')) {\n          return;\n        }\n        listeners = this.__ee__[type];\n        if (!listeners) {\n          return;\n        }\n        if (_typeof(listeners) === 'object') {\n          l = arguments.length;\n          args = new Array(l - 1);\n          for (i = 1; i < l; ++i) {\n            args[i - 1] = arguments[i];\n          }\n          listeners = listeners.slice();\n          for (i = 0; listener = listeners[i]; ++i) {\n            apply.call(listener, this, args);\n          }\n        } else {\n          switch (arguments.length) {\n           case 1:\n            call.call(listeners, this);\n            break;\n\n           case 2:\n            call.call(listeners, this, arguments[1]);\n            break;\n\n           case 3:\n            call.call(listeners, this, arguments[1], arguments[2]);\n            break;\n\n           default:\n            l = arguments.length;\n            args = new Array(l - 1);\n            for (i = 1; i < l; ++i) {\n              args[i - 1] = arguments[i];\n            }\n            apply.call(listeners, this, args);\n          }\n        }\n      };\n      methods = {\n        on: on,\n        once: once,\n        off: off,\n        emit: emit\n      };\n      descriptors = {\n        on: d(on),\n        once: d(once),\n        off: d(off),\n        emit: d(emit)\n      };\n      base = defineProperties({}, descriptors);\n      module.exports = exports = function exports(o) {\n        return o == null ? create(base) : defineProperties(Object(o), descriptors);\n      };\n      exports.methods = methods;\n    });\n    var require_is_implemented5 = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function() {\n        var from = Array.from, arr, result;\n        if (typeof from !== 'function') {\n          return false;\n        }\n        arr = [ 'raz', 'dwa' ];\n        result = from(arr);\n        return Boolean(result && result !== arr && result[1] === 'dwa');\n      };\n    });\n    var require_is_implemented6 = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function() {\n        if ((typeof globalThis === 'undefined' ? 'undefined' : _typeof(globalThis)) !== 'object') {\n          return false;\n        }\n        if (!globalThis) {\n          return false;\n        }\n        return globalThis.Array === Array;\n      };\n    });\n    var require_implementation = __commonJS(function(exports, module) {\n      var naiveFallback = function naiveFallback() {\n        if ((typeof self === 'undefined' ? 'undefined' : _typeof(self)) === 'object' && self) {\n          return self;\n        }\n        if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && window) {\n          return window;\n        }\n        throw new Error('Unable to resolve global `this`');\n      };\n      module.exports = function() {\n        if (this) {\n          return this;\n        }\n        try {\n          Object.defineProperty(Object.prototype, '__global__', {\n            get: function get() {\n              return this;\n            },\n            configurable: true\n          });\n        } catch (error) {\n          return naiveFallback();\n        }\n        try {\n          if (!__global__) {\n            return naiveFallback();\n          }\n          return __global__;\n        } finally {\n          delete Object.prototype.__global__;\n        }\n      }();\n    });\n    var require_global_this = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = require_is_implemented6()() ? globalThis : require_implementation();\n    });\n    var require_is_implemented7 = __commonJS(function(exports, module) {\n      'use strict';\n      var global2 = require_global_this();\n      var validTypes = {\n        object: true,\n        symbol: true\n      };\n      module.exports = function() {\n        var _Symbol = global2.Symbol;\n        var symbol;\n        if (typeof _Symbol !== 'function') {\n          return false;\n        }\n        symbol = _Symbol('test symbol');\n        try {\n          String(symbol);\n        } catch (e) {\n          return false;\n        }\n        if (!validTypes[_typeof(_Symbol.iterator)]) {\n          return false;\n        }\n        if (!validTypes[_typeof(_Symbol.toPrimitive)]) {\n          return false;\n        }\n        if (!validTypes[_typeof(_Symbol.toStringTag)]) {\n          return false;\n        }\n        return true;\n      };\n    });\n    var require_is_symbol = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function(value) {\n        if (!value) {\n          return false;\n        }\n        if (_typeof(value) === 'symbol') {\n          return true;\n        }\n        if (!value.constructor) {\n          return false;\n        }\n        if (value.constructor.name !== 'Symbol') {\n          return false;\n        }\n        return value[value.constructor.toStringTag] === 'Symbol';\n      };\n    });\n    var require_validate_symbol = __commonJS(function(exports, module) {\n      'use strict';\n      var isSymbol = require_is_symbol();\n      module.exports = function(value) {\n        if (!isSymbol(value)) {\n          throw new TypeError(value + ' is not a symbol');\n        }\n        return value;\n      };\n    });\n    var require_generate_name = __commonJS(function(exports, module) {\n      'use strict';\n      var d = require_d();\n      var create = Object.create;\n      var defineProperty = Object.defineProperty;\n      var objPrototype = Object.prototype;\n      var created = create(null);\n      module.exports = function(desc) {\n        var postfix = 0, name, ie11BugWorkaround;\n        while (created[desc + (postfix || '')]) {\n          ++postfix;\n        }\n        desc += postfix || '';\n        created[desc] = true;\n        name = '@@' + desc;\n        defineProperty(objPrototype, name, d.gs(null, function(value) {\n          if (ie11BugWorkaround) {\n            return;\n          }\n          ie11BugWorkaround = true;\n          defineProperty(this, name, d(value));\n          ie11BugWorkaround = false;\n        }));\n        return name;\n      };\n    });\n    var require_standard_symbols = __commonJS(function(exports, module) {\n      'use strict';\n      var d = require_d();\n      var NativeSymbol = require_global_this().Symbol;\n      module.exports = function(SymbolPolyfill) {\n        return Object.defineProperties(SymbolPolyfill, {\n          hasInstance: d('', NativeSymbol && NativeSymbol.hasInstance || SymbolPolyfill('hasInstance')),\n          isConcatSpreadable: d('', NativeSymbol && NativeSymbol.isConcatSpreadable || SymbolPolyfill('isConcatSpreadable')),\n          iterator: d('', NativeSymbol && NativeSymbol.iterator || SymbolPolyfill('iterator')),\n          match: d('', NativeSymbol && NativeSymbol.match || SymbolPolyfill('match')),\n          replace: d('', NativeSymbol && NativeSymbol.replace || SymbolPolyfill('replace')),\n          search: d('', NativeSymbol && NativeSymbol.search || SymbolPolyfill('search')),\n          species: d('', NativeSymbol && NativeSymbol.species || SymbolPolyfill('species')),\n          split: d('', NativeSymbol && NativeSymbol.split || SymbolPolyfill('split')),\n          toPrimitive: d('', NativeSymbol && NativeSymbol.toPrimitive || SymbolPolyfill('toPrimitive')),\n          toStringTag: d('', NativeSymbol && NativeSymbol.toStringTag || SymbolPolyfill('toStringTag')),\n          unscopables: d('', NativeSymbol && NativeSymbol.unscopables || SymbolPolyfill('unscopables'))\n        });\n      };\n    });\n    var require_symbol_registry = __commonJS(function(exports, module) {\n      'use strict';\n      var d = require_d();\n      var validateSymbol = require_validate_symbol();\n      var registry = Object.create(null);\n      module.exports = function(SymbolPolyfill) {\n        return Object.defineProperties(SymbolPolyfill, {\n          for: d(function(key) {\n            if (registry[key]) {\n              return registry[key];\n            }\n            return registry[key] = SymbolPolyfill(String(key));\n          }),\n          keyFor: d(function(symbol) {\n            var key;\n            validateSymbol(symbol);\n            for (key in registry) {\n              if (registry[key] === symbol) {\n                return key;\n              }\n            }\n            return void 0;\n          })\n        });\n      };\n    });\n    var require_polyfill = __commonJS(function(exports, module) {\n      'use strict';\n      var d = require_d();\n      var validateSymbol = require_validate_symbol();\n      var NativeSymbol = require_global_this().Symbol;\n      var generateName = require_generate_name();\n      var setupStandardSymbols = require_standard_symbols();\n      var setupSymbolRegistry = require_symbol_registry();\n      var create = Object.create;\n      var defineProperties = Object.defineProperties;\n      var defineProperty = Object.defineProperty;\n      var SymbolPolyfill;\n      var HiddenSymbol;\n      var isNativeSafe;\n      if (typeof NativeSymbol === 'function') {\n        try {\n          String(NativeSymbol());\n          isNativeSafe = true;\n        } catch (ignore) {}\n      } else {\n        NativeSymbol = null;\n      }\n      HiddenSymbol = function _Symbol2(description) {\n        if (this instanceof HiddenSymbol) {\n          throw new TypeError('Symbol is not a constructor');\n        }\n        return SymbolPolyfill(description);\n      };\n      module.exports = SymbolPolyfill = function _Symbol3(description) {\n        var symbol;\n        if (this instanceof _Symbol3) {\n          throw new TypeError('Symbol is not a constructor');\n        }\n        if (isNativeSafe) {\n          return NativeSymbol(description);\n        }\n        symbol = create(HiddenSymbol.prototype);\n        description = description === void 0 ? '' : String(description);\n        return defineProperties(symbol, {\n          __description__: d('', description),\n          __name__: d('', generateName(description))\n        });\n      };\n      setupStandardSymbols(SymbolPolyfill);\n      setupSymbolRegistry(SymbolPolyfill);\n      defineProperties(HiddenSymbol.prototype, {\n        constructor: d(SymbolPolyfill),\n        toString: d('', function() {\n          return this.__name__;\n        })\n      });\n      defineProperties(SymbolPolyfill.prototype, {\n        toString: d(function() {\n          return 'Symbol (' + validateSymbol(this).__description__ + ')';\n        }),\n        valueOf: d(function() {\n          return validateSymbol(this);\n        })\n      });\n      defineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toPrimitive, d('', function() {\n        var symbol = validateSymbol(this);\n        if (_typeof(symbol) === 'symbol') {\n          return symbol;\n        }\n        return symbol.toString();\n      }));\n      defineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, d('c', 'Symbol'));\n      defineProperty(HiddenSymbol.prototype, SymbolPolyfill.toStringTag, d('c', SymbolPolyfill.prototype[SymbolPolyfill.toStringTag]));\n      defineProperty(HiddenSymbol.prototype, SymbolPolyfill.toPrimitive, d('c', SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive]));\n    });\n    var require_es6_symbol = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = require_is_implemented7()() ? require_global_this().Symbol : require_polyfill();\n    });\n    var require_is_arguments = __commonJS(function(exports, module) {\n      'use strict';\n      var objToString = Object.prototype.toString;\n      var id = objToString.call(function() {\n        return arguments;\n      }());\n      module.exports = function(value) {\n        return objToString.call(value) === id;\n      };\n    });\n    var require_is_function = __commonJS(function(exports, module) {\n      'use strict';\n      var objToString = Object.prototype.toString;\n      var isFunctionStringTag = RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);\n      module.exports = function(value) {\n        return typeof value === 'function' && isFunctionStringTag(objToString.call(value));\n      };\n    });\n    var require_is_string = __commonJS(function(exports, module) {\n      'use strict';\n      var objToString = Object.prototype.toString;\n      var id = objToString.call('');\n      module.exports = function(value) {\n        return typeof value === 'string' || value && _typeof(value) === 'object' && (value instanceof String || objToString.call(value) === id) || false;\n      };\n    });\n    var require_shim5 = __commonJS(function(exports, module) {\n      'use strict';\n      var iteratorSymbol = require_es6_symbol().iterator;\n      var isArguments = require_is_arguments();\n      var isFunction = require_is_function();\n      var toPosInt = require_to_pos_integer();\n      var callable = require_valid_callable();\n      var validValue = require_valid_value();\n      var isValue = require_is_value();\n      var isString = require_is_string();\n      var isArray = Array.isArray;\n      var call = Function.prototype.call;\n      var desc = {\n        configurable: true,\n        enumerable: true,\n        writable: true,\n        value: null\n      };\n      var defineProperty = Object.defineProperty;\n      module.exports = function(arrayLike) {\n        var mapFn = arguments[1], thisArg = arguments[2], Context2, i, j, arr, length, code, iterator, result, getIterator, value;\n        arrayLike = Object(validValue(arrayLike));\n        if (isValue(mapFn)) {\n          callable(mapFn);\n        }\n        if (!this || this === Array || !isFunction(this)) {\n          if (!mapFn) {\n            if (isArguments(arrayLike)) {\n              length = arrayLike.length;\n              if (length !== 1) {\n                return Array.apply(null, arrayLike);\n              }\n              arr = new Array(1);\n              arr[0] = arrayLike[0];\n              return arr;\n            }\n            if (isArray(arrayLike)) {\n              arr = new Array(length = arrayLike.length);\n              for (i = 0; i < length; ++i) {\n                arr[i] = arrayLike[i];\n              }\n              return arr;\n            }\n          }\n          arr = [];\n        } else {\n          Context2 = this;\n        }\n        if (!isArray(arrayLike)) {\n          if ((getIterator = arrayLike[iteratorSymbol]) !== void 0) {\n            iterator = callable(getIterator).call(arrayLike);\n            if (Context2) {\n              arr = new Context2();\n            }\n            result = iterator.next();\n            i = 0;\n            while (!result.done) {\n              value = mapFn ? call.call(mapFn, thisArg, result.value, i) : result.value;\n              if (Context2) {\n                desc.value = value;\n                defineProperty(arr, i, desc);\n              } else {\n                arr[i] = value;\n              }\n              result = iterator.next();\n              ++i;\n            }\n            length = i;\n          } else if (isString(arrayLike)) {\n            length = arrayLike.length;\n            if (Context2) {\n              arr = new Context2();\n            }\n            for (i = 0, j = 0; i < length; ++i) {\n              value = arrayLike[i];\n              if (i + 1 < length) {\n                code = value.charCodeAt(0);\n                if (code >= 55296 && code <= 56319) {\n                  value += arrayLike[++i];\n                }\n              }\n              value = mapFn ? call.call(mapFn, thisArg, value, j) : value;\n              if (Context2) {\n                desc.value = value;\n                defineProperty(arr, j, desc);\n              } else {\n                arr[j] = value;\n              }\n              ++j;\n            }\n            length = j;\n          }\n        }\n        if (length === void 0) {\n          length = toPosInt(arrayLike.length);\n          if (Context2) {\n            arr = new Context2(length);\n          }\n          for (i = 0; i < length; ++i) {\n            value = mapFn ? call.call(mapFn, thisArg, arrayLike[i], i) : arrayLike[i];\n            if (Context2) {\n              desc.value = value;\n              defineProperty(arr, i, desc);\n            } else {\n              arr[i] = value;\n            }\n          }\n        }\n        if (Context2) {\n          desc.value = null;\n          arr.length = length;\n        }\n        return arr;\n      };\n    });\n    var require_from = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = require_is_implemented5()() ? Array.from : require_shim5();\n    });\n    var require_to_array = __commonJS(function(exports, module) {\n      'use strict';\n      var from = require_from();\n      var isArray = Array.isArray;\n      module.exports = function(arrayLike) {\n        return isArray(arrayLike) ? arrayLike : from(arrayLike);\n      };\n    });\n    var require_resolve_resolve = __commonJS(function(exports, module) {\n      'use strict';\n      var toArray2 = require_to_array();\n      var isValue = require_is_value();\n      var callable = require_valid_callable();\n      var slice = Array.prototype.slice;\n      var resolveArgs;\n      resolveArgs = function resolveArgs(args) {\n        return this.map(function(resolve, i) {\n          return resolve ? resolve(args[i]) : args[i];\n        }).concat(slice.call(args, this.length));\n      };\n      module.exports = function(resolvers) {\n        resolvers = toArray2(resolvers);\n        resolvers.forEach(function(resolve) {\n          if (isValue(resolve)) {\n            callable(resolve);\n          }\n        });\n        return resolveArgs.bind(resolvers);\n      };\n    });\n    var require_resolve_normalize = __commonJS(function(exports, module) {\n      'use strict';\n      var callable = require_valid_callable();\n      module.exports = function(userNormalizer) {\n        var normalizer;\n        if (typeof userNormalizer === 'function') {\n          return {\n            set: userNormalizer,\n            get: userNormalizer\n          };\n        }\n        normalizer = {\n          get: callable(userNormalizer.get)\n        };\n        if (userNormalizer.set !== void 0) {\n          normalizer.set = callable(userNormalizer.set);\n          if (userNormalizer['delete']) {\n            normalizer['delete'] = callable(userNormalizer['delete']);\n          }\n          if (userNormalizer.clear) {\n            normalizer.clear = callable(userNormalizer.clear);\n          }\n          return normalizer;\n        }\n        normalizer.set = normalizer.get;\n        return normalizer;\n      };\n    });\n    var require_configure_map = __commonJS(function(exports, module) {\n      'use strict';\n      var customError = require_custom();\n      var defineLength = require_define_length();\n      var d = require_d();\n      var ee = require_event_emitter().methods;\n      var resolveResolve = require_resolve_resolve();\n      var resolveNormalize = require_resolve_normalize();\n      var apply = Function.prototype.apply;\n      var call = Function.prototype.call;\n      var create = Object.create;\n      var defineProperties = Object.defineProperties;\n      var _on = ee.on;\n      var emit = ee.emit;\n      module.exports = function(original, length, options) {\n        var cache20 = create(null), conf, memLength, _get, set, del, _clear, extDel, extGet, extHas, normalizer, getListeners, setListeners, deleteListeners, memoized, resolve;\n        if (length !== false) {\n          memLength = length;\n        } else if (isNaN(original.length)) {\n          memLength = 1;\n        } else {\n          memLength = original.length;\n        }\n        if (options.normalizer) {\n          normalizer = resolveNormalize(options.normalizer);\n          _get = normalizer.get;\n          set = normalizer.set;\n          del = normalizer['delete'];\n          _clear = normalizer.clear;\n        }\n        if (options.resolvers != null) {\n          resolve = resolveResolve(options.resolvers);\n        }\n        if (_get) {\n          memoized = defineLength(function(arg) {\n            var id, result, args = arguments;\n            if (resolve) {\n              args = resolve(args);\n            }\n            id = _get(args);\n            if (id !== null) {\n              if (hasOwnProperty.call(cache20, id)) {\n                if (getListeners) {\n                  conf.emit('get', id, args, this);\n                }\n                return cache20[id];\n              }\n            }\n            if (args.length === 1) {\n              result = call.call(original, this, args[0]);\n            } else {\n              result = apply.call(original, this, args);\n            }\n            if (id === null) {\n              id = _get(args);\n              if (id !== null) {\n                throw customError('Circular invocation', 'CIRCULAR_INVOCATION');\n              }\n              id = set(args);\n            } else if (hasOwnProperty.call(cache20, id)) {\n              throw customError('Circular invocation', 'CIRCULAR_INVOCATION');\n            }\n            cache20[id] = result;\n            if (setListeners) {\n              conf.emit('set', id, null, result);\n            }\n            return result;\n          }, memLength);\n        } else if (length === 0) {\n          memoized = function memoized() {\n            var result;\n            if (hasOwnProperty.call(cache20, 'data')) {\n              if (getListeners) {\n                conf.emit('get', 'data', arguments, this);\n              }\n              return cache20.data;\n            }\n            if (arguments.length) {\n              result = apply.call(original, this, arguments);\n            } else {\n              result = call.call(original, this);\n            }\n            if (hasOwnProperty.call(cache20, 'data')) {\n              throw customError('Circular invocation', 'CIRCULAR_INVOCATION');\n            }\n            cache20.data = result;\n            if (setListeners) {\n              conf.emit('set', 'data', null, result);\n            }\n            return result;\n          };\n        } else {\n          memoized = function memoized(arg) {\n            var result, args = arguments, id;\n            if (resolve) {\n              args = resolve(arguments);\n            }\n            id = String(args[0]);\n            if (hasOwnProperty.call(cache20, id)) {\n              if (getListeners) {\n                conf.emit('get', id, args, this);\n              }\n              return cache20[id];\n            }\n            if (args.length === 1) {\n              result = call.call(original, this, args[0]);\n            } else {\n              result = apply.call(original, this, args);\n            }\n            if (hasOwnProperty.call(cache20, id)) {\n              throw customError('Circular invocation', 'CIRCULAR_INVOCATION');\n            }\n            cache20[id] = result;\n            if (setListeners) {\n              conf.emit('set', id, null, result);\n            }\n            return result;\n          };\n        }\n        conf = {\n          original: original,\n          memoized: memoized,\n          profileName: options.profileName,\n          get: function get(args) {\n            if (resolve) {\n              args = resolve(args);\n            }\n            if (_get) {\n              return _get(args);\n            }\n            return String(args[0]);\n          },\n          has: function has(id) {\n            return hasOwnProperty.call(cache20, id);\n          },\n          delete: function _delete(id) {\n            var result;\n            if (!hasOwnProperty.call(cache20, id)) {\n              return;\n            }\n            if (del) {\n              del(id);\n            }\n            result = cache20[id];\n            delete cache20[id];\n            if (deleteListeners) {\n              conf.emit('delete', id, result);\n            }\n          },\n          clear: function clear() {\n            var oldCache = cache20;\n            if (_clear) {\n              _clear();\n            }\n            cache20 = create(null);\n            conf.emit('clear', oldCache);\n          },\n          on: function on(type, listener) {\n            if (type === 'get') {\n              getListeners = true;\n            } else if (type === 'set') {\n              setListeners = true;\n            } else if (type === 'delete') {\n              deleteListeners = true;\n            }\n            return _on.call(this, type, listener);\n          },\n          emit: emit,\n          updateEnv: function updateEnv() {\n            original = conf.original;\n          }\n        };\n        if (_get) {\n          extDel = defineLength(function(arg) {\n            var id, args = arguments;\n            if (resolve) {\n              args = resolve(args);\n            }\n            id = _get(args);\n            if (id === null) {\n              return;\n            }\n            conf['delete'](id);\n          }, memLength);\n        } else if (length === 0) {\n          extDel = function extDel() {\n            return conf['delete']('data');\n          };\n        } else {\n          extDel = function extDel(arg) {\n            if (resolve) {\n              arg = resolve(arguments)[0];\n            }\n            return conf['delete'](arg);\n          };\n        }\n        extGet = defineLength(function() {\n          var id, args = arguments;\n          if (length === 0) {\n            return cache20.data;\n          }\n          if (resolve) {\n            args = resolve(args);\n          }\n          if (_get) {\n            id = _get(args);\n          } else {\n            id = String(args[0]);\n          }\n          return cache20[id];\n        });\n        extHas = defineLength(function() {\n          var id, args = arguments;\n          if (length === 0) {\n            return conf.has('data');\n          }\n          if (resolve) {\n            args = resolve(args);\n          }\n          if (_get) {\n            id = _get(args);\n          } else {\n            id = String(args[0]);\n          }\n          if (id === null) {\n            return false;\n          }\n          return conf.has(id);\n        });\n        defineProperties(memoized, {\n          __memoized__: d(true),\n          delete: d(extDel),\n          clear: d(conf.clear),\n          _get: d(extGet),\n          _has: d(extHas)\n        });\n        return conf;\n      };\n    });\n    var require_plain = __commonJS(function(exports, module) {\n      'use strict';\n      var callable = require_valid_callable();\n      var forEach = require_for_each();\n      var extensions = require_registered_extensions();\n      var configure5 = require_configure_map();\n      var resolveLength = require_resolve_length();\n      module.exports = function self2(fn) {\n        var options, length, conf;\n        callable(fn);\n        options = Object(arguments[1]);\n        if (options.async && options.promise) {\n          throw new Error('Options \\'async\\' and \\'promise\\' cannot be used together');\n        }\n        if (hasOwnProperty.call(fn, '__memoized__') && !options.force) {\n          return fn;\n        }\n        length = resolveLength(options.length, fn.length, options.async && extensions.async);\n        conf = configure5(fn, length, options);\n        forEach(extensions, function(extFn, name) {\n          if (options[name]) {\n            extFn(options[name], conf, options);\n          }\n        });\n        if (self2.__profiler__) {\n          self2.__profiler__(conf);\n        }\n        conf.updateEnv();\n        return conf.memoized;\n      };\n    });\n    var require_primitive = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function(args) {\n        var id, i, length = args.length;\n        if (!length) {\n          return '\\x02';\n        }\n        id = String(args[i = 0]);\n        while (--length) {\n          id += '\\x01' + args[++i];\n        }\n        return id;\n      };\n    });\n    var require_get_primitive_fixed = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function(length) {\n        if (!length) {\n          return function() {\n            return '';\n          };\n        }\n        return function(args) {\n          var id = String(args[0]), i = 0, currentLength = length;\n          while (--currentLength) {\n            id += '\\x01' + args[++i];\n          }\n          return id;\n        };\n      };\n    });\n    var require_is_implemented8 = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function() {\n        var numberIsNaN = Number.isNaN;\n        if (typeof numberIsNaN !== 'function') {\n          return false;\n        }\n        return !numberIsNaN({}) && numberIsNaN(NaN) && !numberIsNaN(34);\n      };\n    });\n    var require_shim6 = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function(value) {\n        return value !== value;\n      };\n    });\n    var require_is_nan = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = require_is_implemented8()() ? Number.isNaN : require_shim6();\n    });\n    var require_e_index_of = __commonJS(function(exports, module) {\n      'use strict';\n      var numberIsNaN = require_is_nan();\n      var toPosInt = require_to_pos_integer();\n      var value = require_valid_value();\n      var indexOf = Array.prototype.indexOf;\n      var objHasOwnProperty = Object.prototype.hasOwnProperty;\n      var abs = Math.abs;\n      var floor = Math.floor;\n      module.exports = function(searchElement) {\n        var i, length, fromIndex, val;\n        if (!numberIsNaN(searchElement)) {\n          return indexOf.apply(this, arguments);\n        }\n        length = toPosInt(value(this).length);\n        fromIndex = arguments[1];\n        if (isNaN(fromIndex)) {\n          fromIndex = 0;\n        } else if (fromIndex >= 0) {\n          fromIndex = floor(fromIndex);\n        } else {\n          fromIndex = toPosInt(this.length) - floor(abs(fromIndex));\n        }\n        for (i = fromIndex; i < length; ++i) {\n          if (objHasOwnProperty.call(this, i)) {\n            val = this[i];\n            if (numberIsNaN(val)) {\n              return i;\n            }\n          }\n        }\n        return -1;\n      };\n    });\n    var require_get = __commonJS(function(exports, module) {\n      'use strict';\n      var indexOf = require_e_index_of();\n      var create = Object.create;\n      module.exports = function() {\n        var lastId = 0, map = [], cache20 = create(null);\n        return {\n          get: function get(args) {\n            var index = 0, set = map, i, length = args.length;\n            if (length === 0) {\n              return set[length] || null;\n            }\n            if (set = set[length]) {\n              while (index < length - 1) {\n                i = indexOf.call(set[0], args[index]);\n                if (i === -1) {\n                  return null;\n                }\n                set = set[1][i];\n                ++index;\n              }\n              i = indexOf.call(set[0], args[index]);\n              if (i === -1) {\n                return null;\n              }\n              return set[1][i] || null;\n            }\n            return null;\n          },\n          set: function set(args) {\n            var index = 0, set = map, i, length = args.length;\n            if (length === 0) {\n              set[length] = ++lastId;\n            } else {\n              if (!set[length]) {\n                set[length] = [ [], [] ];\n              }\n              set = set[length];\n              while (index < length - 1) {\n                i = indexOf.call(set[0], args[index]);\n                if (i === -1) {\n                  i = set[0].push(args[index]) - 1;\n                  set[1].push([ [], [] ]);\n                }\n                set = set[1][i];\n                ++index;\n              }\n              i = indexOf.call(set[0], args[index]);\n              if (i === -1) {\n                i = set[0].push(args[index]) - 1;\n              }\n              set[1][i] = ++lastId;\n            }\n            cache20[lastId] = args;\n            return lastId;\n          },\n          delete: function _delete(id) {\n            var index = 0, set = map, i, args = cache20[id], length = args.length, path = [];\n            if (length === 0) {\n              delete set[length];\n            } else if (set = set[length]) {\n              while (index < length - 1) {\n                i = indexOf.call(set[0], args[index]);\n                if (i === -1) {\n                  return;\n                }\n                path.push(set, i);\n                set = set[1][i];\n                ++index;\n              }\n              i = indexOf.call(set[0], args[index]);\n              if (i === -1) {\n                return;\n              }\n              id = set[1][i];\n              set[0].splice(i, 1);\n              set[1].splice(i, 1);\n              while (!set[0].length && path.length) {\n                i = path.pop();\n                set = path.pop();\n                set[0].splice(i, 1);\n                set[1].splice(i, 1);\n              }\n            }\n            delete cache20[id];\n          },\n          clear: function clear() {\n            map = [];\n            cache20 = create(null);\n          }\n        };\n      };\n    });\n    var require_get_1 = __commonJS(function(exports, module) {\n      'use strict';\n      var indexOf = require_e_index_of();\n      module.exports = function() {\n        var lastId = 0, argsMap = [], cache20 = [];\n        return {\n          get: function get(args) {\n            var index = indexOf.call(argsMap, args[0]);\n            return index === -1 ? null : cache20[index];\n          },\n          set: function set(args) {\n            argsMap.push(args[0]);\n            cache20.push(++lastId);\n            return lastId;\n          },\n          delete: function _delete(id) {\n            var index = indexOf.call(cache20, id);\n            if (index !== -1) {\n              argsMap.splice(index, 1);\n              cache20.splice(index, 1);\n            }\n          },\n          clear: function clear() {\n            argsMap = [];\n            cache20 = [];\n          }\n        };\n      };\n    });\n    var require_get_fixed = __commonJS(function(exports, module) {\n      'use strict';\n      var indexOf = require_e_index_of();\n      var create = Object.create;\n      module.exports = function(length) {\n        var lastId = 0, map = [ [], [] ], cache20 = create(null);\n        return {\n          get: function get(args) {\n            var index = 0, set = map, i;\n            while (index < length - 1) {\n              i = indexOf.call(set[0], args[index]);\n              if (i === -1) {\n                return null;\n              }\n              set = set[1][i];\n              ++index;\n            }\n            i = indexOf.call(set[0], args[index]);\n            if (i === -1) {\n              return null;\n            }\n            return set[1][i] || null;\n          },\n          set: function set(args) {\n            var index = 0, set = map, i;\n            while (index < length - 1) {\n              i = indexOf.call(set[0], args[index]);\n              if (i === -1) {\n                i = set[0].push(args[index]) - 1;\n                set[1].push([ [], [] ]);\n              }\n              set = set[1][i];\n              ++index;\n            }\n            i = indexOf.call(set[0], args[index]);\n            if (i === -1) {\n              i = set[0].push(args[index]) - 1;\n            }\n            set[1][i] = ++lastId;\n            cache20[lastId] = args;\n            return lastId;\n          },\n          delete: function _delete(id) {\n            var index = 0, set = map, i, path = [], args = cache20[id];\n            while (index < length - 1) {\n              i = indexOf.call(set[0], args[index]);\n              if (i === -1) {\n                return;\n              }\n              path.push(set, i);\n              set = set[1][i];\n              ++index;\n            }\n            i = indexOf.call(set[0], args[index]);\n            if (i === -1) {\n              return;\n            }\n            id = set[1][i];\n            set[0].splice(i, 1);\n            set[1].splice(i, 1);\n            while (!set[0].length && path.length) {\n              i = path.pop();\n              set = path.pop();\n              set[0].splice(i, 1);\n              set[1].splice(i, 1);\n            }\n            delete cache20[id];\n          },\n          clear: function clear() {\n            map = [ [], [] ];\n            cache20 = create(null);\n          }\n        };\n      };\n    });\n    var require_map = __commonJS(function(exports, module) {\n      'use strict';\n      var callable = require_valid_callable();\n      var forEach = require_for_each();\n      var call = Function.prototype.call;\n      module.exports = function(obj, cb) {\n        var result = {}, thisArg = arguments[2];\n        callable(cb);\n        forEach(obj, function(value, key, targetObj, index) {\n          result[key] = call.call(cb, thisArg, value, key, targetObj, index);\n        });\n        return result;\n      };\n    });\n    var require_next_tick = __commonJS(function(exports, module) {\n      'use strict';\n      var callable;\n      var byObserver;\n      callable = function callable(fn) {\n        if (typeof fn !== 'function') {\n          throw new TypeError(fn + ' is not a function');\n        }\n        return fn;\n      };\n      byObserver = function byObserver(Observer) {\n        var node = document.createTextNode(''), queue4, currentQueue, i = 0;\n        new Observer(function() {\n          var callback;\n          if (!queue4) {\n            if (!currentQueue) {\n              return;\n            }\n            queue4 = currentQueue;\n          } else if (currentQueue) {\n            queue4 = currentQueue.concat(queue4);\n          }\n          currentQueue = queue4;\n          queue4 = null;\n          if (typeof currentQueue === 'function') {\n            callback = currentQueue;\n            currentQueue = null;\n            callback();\n            return;\n          }\n          node.data = i = ++i % 2;\n          while (currentQueue) {\n            callback = currentQueue.shift();\n            if (!currentQueue.length) {\n              currentQueue = null;\n            }\n            callback();\n          }\n        }).observe(node, {\n          characterData: true\n        });\n        return function(fn) {\n          callable(fn);\n          if (queue4) {\n            if (typeof queue4 === 'function') {\n              queue4 = [ queue4, fn ];\n            } else {\n              queue4.push(fn);\n            }\n            return;\n          }\n          queue4 = fn;\n          node.data = i = ++i % 2;\n        };\n      };\n      module.exports = function() {\n        if ((typeof process === 'undefined' ? 'undefined' : _typeof(process)) === 'object' && process && typeof process.nextTick === 'function') {\n          return process.nextTick;\n        }\n        if ((typeof document === 'undefined' ? 'undefined' : _typeof(document)) === 'object' && document) {\n          if (typeof MutationObserver === 'function') {\n            return byObserver(MutationObserver);\n          }\n          if (typeof WebKitMutationObserver === 'function') {\n            return byObserver(WebKitMutationObserver);\n          }\n        }\n        if (typeof setImmediate === 'function') {\n          return function(cb) {\n            setImmediate(callable(cb));\n          };\n        }\n        if (typeof setTimeout === 'function' || (typeof setTimeout === 'undefined' ? 'undefined' : _typeof(setTimeout)) === 'object') {\n          return function(cb) {\n            setTimeout(callable(cb), 0);\n          };\n        }\n        return null;\n      }();\n    });\n    var require_async = __commonJS(function() {\n      'use strict';\n      var aFrom = require_from();\n      var objectMap = require_map();\n      var mixin = require_mixin();\n      var defineLength = require_define_length();\n      var nextTick = require_next_tick();\n      var slice = Array.prototype.slice;\n      var apply = Function.prototype.apply;\n      var create = Object.create;\n      require_registered_extensions().async = function(tbi, conf) {\n        var waiting = create(null), cache20 = create(null), base = conf.memoized, original = conf.original, currentCallback, currentContext, currentArgs;\n        conf.memoized = defineLength(function(arg) {\n          var args = arguments, last = args[args.length - 1];\n          if (typeof last === 'function') {\n            currentCallback = last;\n            args = slice.call(args, 0, -1);\n          }\n          return base.apply(currentContext = this, currentArgs = args);\n        }, base);\n        try {\n          mixin(conf.memoized, base);\n        } catch (ignore) {}\n        conf.on('get', function(id) {\n          var cb, context3, args;\n          if (!currentCallback) {\n            return;\n          }\n          if (waiting[id]) {\n            if (typeof waiting[id] === 'function') {\n              waiting[id] = [ waiting[id], currentCallback ];\n            } else {\n              waiting[id].push(currentCallback);\n            }\n            currentCallback = null;\n            return;\n          }\n          cb = currentCallback;\n          context3 = currentContext;\n          args = currentArgs;\n          currentCallback = currentContext = currentArgs = null;\n          nextTick(function() {\n            var data2;\n            if (hasOwnProperty.call(cache20, id)) {\n              data2 = cache20[id];\n              conf.emit('getasync', id, args, context3);\n              apply.call(cb, data2.context, data2.args);\n            } else {\n              currentCallback = cb;\n              currentContext = context3;\n              currentArgs = args;\n              base.apply(context3, args);\n            }\n          });\n        });\n        conf.original = function() {\n          var args, cb, origCb, result;\n          if (!currentCallback) {\n            return apply.call(original, this, arguments);\n          }\n          args = aFrom(arguments);\n          cb = function self2(err2) {\n            var cb2, args2, id = self2.id;\n            if (id == null) {\n              nextTick(apply.bind(self2, this, arguments));\n              return void 0;\n            }\n            delete self2.id;\n            cb2 = waiting[id];\n            delete waiting[id];\n            if (!cb2) {\n              return void 0;\n            }\n            args2 = aFrom(arguments);\n            if (conf.has(id)) {\n              if (err2) {\n                conf['delete'](id);\n              } else {\n                cache20[id] = {\n                  context: this,\n                  args: args2\n                };\n                conf.emit('setasync', id, typeof cb2 === 'function' ? 1 : cb2.length);\n              }\n            }\n            if (typeof cb2 === 'function') {\n              result = apply.call(cb2, this, args2);\n            } else {\n              cb2.forEach(function(cb3) {\n                result = apply.call(cb3, this, args2);\n              }, this);\n            }\n            return result;\n          };\n          origCb = currentCallback;\n          currentCallback = currentContext = currentArgs = null;\n          args.push(cb);\n          result = apply.call(original, this, args);\n          cb.cb = origCb;\n          currentCallback = cb;\n          return result;\n        };\n        conf.on('set', function(id) {\n          if (!currentCallback) {\n            conf['delete'](id);\n            return;\n          }\n          if (waiting[id]) {\n            if (typeof waiting[id] === 'function') {\n              waiting[id] = [ waiting[id], currentCallback.cb ];\n            } else {\n              waiting[id].push(currentCallback.cb);\n            }\n          } else {\n            waiting[id] = currentCallback.cb;\n          }\n          delete currentCallback.cb;\n          currentCallback.id = id;\n          currentCallback = null;\n        });\n        conf.on('delete', function(id) {\n          var result;\n          if (hasOwnProperty.call(waiting, id)) {\n            return;\n          }\n          if (!cache20[id]) {\n            return;\n          }\n          result = cache20[id];\n          delete cache20[id];\n          conf.emit('deleteasync', id, slice.call(result.args, 1));\n        });\n        conf.on('clear', function() {\n          var oldCache = cache20;\n          cache20 = create(null);\n          conf.emit('clearasync', objectMap(oldCache, function(data2) {\n            return slice.call(data2.args, 1);\n          }));\n        });\n      };\n    });\n    var require_primitive_set = __commonJS(function(exports, module) {\n      'use strict';\n      var forEach = Array.prototype.forEach;\n      var create = Object.create;\n      module.exports = function(arg) {\n        var set = create(null);\n        forEach.call(arguments, function(name) {\n          set[name] = true;\n        });\n        return set;\n      };\n    });\n    var require_is_callable = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function(obj) {\n        return typeof obj === 'function';\n      };\n    });\n    var require_validate_stringifiable = __commonJS(function(exports, module) {\n      'use strict';\n      var isCallable = require_is_callable();\n      module.exports = function(stringifiable) {\n        try {\n          if (stringifiable && isCallable(stringifiable.toString)) {\n            return stringifiable.toString();\n          }\n          return String(stringifiable);\n        } catch (e) {\n          throw new TypeError('Passed argument cannot be stringifed');\n        }\n      };\n    });\n    var require_validate_stringifiable_value = __commonJS(function(exports, module) {\n      'use strict';\n      var ensureValue = require_valid_value();\n      var stringifiable = require_validate_stringifiable();\n      module.exports = function(value) {\n        return stringifiable(ensureValue(value));\n      };\n    });\n    var require_safe_to_string = __commonJS(function(exports, module) {\n      'use strict';\n      var isCallable = require_is_callable();\n      module.exports = function(value) {\n        try {\n          if (value && isCallable(value.toString)) {\n            return value.toString();\n          }\n          return String(value);\n        } catch (e) {\n          return '<Non-coercible to string value>';\n        }\n      };\n    });\n    var require_to_short_string_representation = __commonJS(function(exports, module) {\n      'use strict';\n      var safeToString = require_safe_to_string();\n      var reNewLine = /[\\n\\r\\u2028\\u2029]/g;\n      module.exports = function(value) {\n        var string = safeToString(value);\n        if (string.length > 100) {\n          string = string.slice(0, 99) + '\\u2026';\n        }\n        string = string.replace(reNewLine, function(_char) {\n          return JSON.stringify(_char).slice(1, -1);\n        });\n        return string;\n      };\n    });\n    var require_is_promise = __commonJS(function(exports, module) {\n      module.exports = isPromise;\n      module.exports['default'] = isPromise;\n      function isPromise(obj) {\n        return !!obj && (_typeof(obj) === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n      }\n    });\n    var require_promise = __commonJS(function() {\n      'use strict';\n      var objectMap = require_map();\n      var primitiveSet = require_primitive_set();\n      var ensureString = require_validate_stringifiable_value();\n      var toShortString = require_to_short_string_representation();\n      var isPromise = require_is_promise();\n      var nextTick = require_next_tick();\n      var create = Object.create;\n      var supportedModes = primitiveSet('then', 'then:finally', 'done', 'done:finally');\n      require_registered_extensions().promise = function(mode, conf) {\n        var waiting = create(null), cache20 = create(null), promises = create(null);\n        if (mode === true) {\n          mode = null;\n        } else {\n          mode = ensureString(mode);\n          if (!supportedModes[mode]) {\n            throw new TypeError('\\'' + toShortString(mode) + '\\' is not valid promise mode');\n          }\n        }\n        conf.on('set', function(id, ignore, promise) {\n          var isFailed = false;\n          if (!isPromise(promise)) {\n            cache20[id] = promise;\n            conf.emit('setasync', id, 1);\n            return;\n          }\n          waiting[id] = 1;\n          promises[id] = promise;\n          var onSuccess = function onSuccess(result) {\n            var count = waiting[id];\n            if (isFailed) {\n              throw new Error('Memoizee error: Detected unordered then|done & finally resolution, which in turn makes proper detection of success/failure impossible (when in \\'done:finally\\' mode)\\nConsider to rely on \\'then\\' or \\'done\\' mode instead.');\n            }\n            if (!count) {\n              return;\n            }\n            delete waiting[id];\n            cache20[id] = result;\n            conf.emit('setasync', id, count);\n          };\n          var onFailure = function onFailure() {\n            isFailed = true;\n            if (!waiting[id]) {\n              return;\n            }\n            delete waiting[id];\n            delete promises[id];\n            conf['delete'](id);\n          };\n          var resolvedMode = mode;\n          if (!resolvedMode) {\n            resolvedMode = 'then';\n          }\n          if (resolvedMode === 'then') {\n            var nextTickFailure = function nextTickFailure() {\n              nextTick(onFailure);\n            };\n            promise = promise.then(function(result) {\n              nextTick(onSuccess.bind(this, result));\n            }, nextTickFailure);\n            if (typeof promise['finally'] === 'function') {\n              promise['finally'](nextTickFailure);\n            }\n          } else if (resolvedMode === 'done') {\n            if (typeof promise.done !== 'function') {\n              throw new Error('Memoizee error: Retrieved promise does not implement \\'done\\' in \\'done\\' mode');\n            }\n            promise.done(onSuccess, onFailure);\n          } else if (resolvedMode === 'done:finally') {\n            if (typeof promise.done !== 'function') {\n              throw new Error('Memoizee error: Retrieved promise does not implement \\'done\\' in \\'done:finally\\' mode');\n            }\n            if (typeof promise['finally'] !== 'function') {\n              throw new Error('Memoizee error: Retrieved promise does not implement \\'finally\\' in \\'done:finally\\' mode');\n            }\n            promise.done(onSuccess);\n            promise['finally'](onFailure);\n          }\n        });\n        conf.on('get', function(id, args, context3) {\n          var promise;\n          if (waiting[id]) {\n            ++waiting[id];\n            return;\n          }\n          promise = promises[id];\n          var emit = function emit() {\n            conf.emit('getasync', id, args, context3);\n          };\n          if (isPromise(promise)) {\n            if (typeof promise.done === 'function') {\n              promise.done(emit);\n            } else {\n              promise.then(function() {\n                nextTick(emit);\n              });\n            }\n          } else {\n            emit();\n          }\n        });\n        conf.on('delete', function(id) {\n          delete promises[id];\n          if (waiting[id]) {\n            delete waiting[id];\n            return;\n          }\n          if (!hasOwnProperty.call(cache20, id)) {\n            return;\n          }\n          var result = cache20[id];\n          delete cache20[id];\n          conf.emit('deleteasync', id, [ result ]);\n        });\n        conf.on('clear', function() {\n          var oldCache = cache20;\n          cache20 = create(null);\n          waiting = create(null);\n          promises = create(null);\n          conf.emit('clearasync', objectMap(oldCache, function(data2) {\n            return [ data2 ];\n          }));\n        });\n      };\n    });\n    var require_dispose = __commonJS(function() {\n      'use strict';\n      var callable = require_valid_callable();\n      var forEach = require_for_each();\n      var extensions = require_registered_extensions();\n      var apply = Function.prototype.apply;\n      extensions.dispose = function(dispose, conf, options) {\n        var del;\n        callable(dispose);\n        if (options.async && extensions.async || options.promise && extensions.promise) {\n          conf.on('deleteasync', del = function del(id, resultArray) {\n            apply.call(dispose, null, resultArray);\n          });\n          conf.on('clearasync', function(cache20) {\n            forEach(cache20, function(result, id) {\n              del(id, result);\n            });\n          });\n          return;\n        }\n        conf.on('delete', del = function del(id, result) {\n          dispose(result);\n        });\n        conf.on('clear', function(cache20) {\n          forEach(cache20, function(result, id) {\n            del(id, result);\n          });\n        });\n      };\n    });\n    var require_max_timeout = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = 2147483647;\n    });\n    var require_valid_timeout = __commonJS(function(exports, module) {\n      'use strict';\n      var toPosInt = require_to_pos_integer();\n      var maxTimeout = require_max_timeout();\n      module.exports = function(value) {\n        value = toPosInt(value);\n        if (value > maxTimeout) {\n          throw new TypeError(value + ' exceeds maximum possible timeout');\n        }\n        return value;\n      };\n    });\n    var require_max_age = __commonJS(function() {\n      'use strict';\n      var aFrom = require_from();\n      var forEach = require_for_each();\n      var nextTick = require_next_tick();\n      var isPromise = require_is_promise();\n      var timeout = require_valid_timeout();\n      var extensions = require_registered_extensions();\n      var noop4 = Function.prototype;\n      var max = Math.max;\n      var min = Math.min;\n      var create = Object.create;\n      extensions.maxAge = function(maxAge, conf, options) {\n        var timeouts, postfix, preFetchAge, preFetchTimeouts;\n        maxAge = timeout(maxAge);\n        if (!maxAge) {\n          return;\n        }\n        timeouts = create(null);\n        postfix = options.async && extensions.async || options.promise && extensions.promise ? 'async' : '';\n        conf.on('set' + postfix, function(id) {\n          timeouts[id] = setTimeout(function() {\n            conf['delete'](id);\n          }, maxAge);\n          if (typeof timeouts[id].unref === 'function') {\n            timeouts[id].unref();\n          }\n          if (!preFetchTimeouts) {\n            return;\n          }\n          if (preFetchTimeouts[id]) {\n            if (preFetchTimeouts[id] !== 'nextTick') {\n              clearTimeout(preFetchTimeouts[id]);\n            }\n          }\n          preFetchTimeouts[id] = setTimeout(function() {\n            delete preFetchTimeouts[id];\n          }, preFetchAge);\n          if (typeof preFetchTimeouts[id].unref === 'function') {\n            preFetchTimeouts[id].unref();\n          }\n        });\n        conf.on('delete' + postfix, function(id) {\n          clearTimeout(timeouts[id]);\n          delete timeouts[id];\n          if (!preFetchTimeouts) {\n            return;\n          }\n          if (preFetchTimeouts[id] !== 'nextTick') {\n            clearTimeout(preFetchTimeouts[id]);\n          }\n          delete preFetchTimeouts[id];\n        });\n        if (options.preFetch) {\n          if (options.preFetch === true || isNaN(options.preFetch)) {\n            preFetchAge = .333;\n          } else {\n            preFetchAge = max(min(Number(options.preFetch), 1), 0);\n          }\n          if (preFetchAge) {\n            preFetchTimeouts = {};\n            preFetchAge = (1 - preFetchAge) * maxAge;\n            conf.on('get' + postfix, function(id, args, context3) {\n              if (!preFetchTimeouts[id]) {\n                preFetchTimeouts[id] = 'nextTick';\n                nextTick(function() {\n                  var result;\n                  if (preFetchTimeouts[id] !== 'nextTick') {\n                    return;\n                  }\n                  delete preFetchTimeouts[id];\n                  conf['delete'](id);\n                  if (options.async) {\n                    args = aFrom(args);\n                    args.push(noop4);\n                  }\n                  result = conf.memoized.apply(context3, args);\n                  if (options.promise) {\n                    if (isPromise(result)) {\n                      if (typeof result.done === 'function') {\n                        result.done(noop4, noop4);\n                      } else {\n                        result.then(noop4, noop4);\n                      }\n                    }\n                  }\n                });\n              }\n            });\n          }\n        }\n        conf.on('clear' + postfix, function() {\n          forEach(timeouts, function(id) {\n            clearTimeout(id);\n          });\n          timeouts = {};\n          if (preFetchTimeouts) {\n            forEach(preFetchTimeouts, function(id) {\n              if (id !== 'nextTick') {\n                clearTimeout(id);\n              }\n            });\n            preFetchTimeouts = {};\n          }\n        });\n      };\n    });\n    var require_lru_queue = __commonJS(function(exports, module) {\n      'use strict';\n      var toPosInt = require_to_pos_integer();\n      var create = Object.create;\n      var hasOwnProperty2 = Object.prototype.hasOwnProperty;\n      module.exports = function(limit) {\n        var size = 0, base = 1, queue4 = create(null), map = create(null), index = 0, del;\n        limit = toPosInt(limit);\n        return {\n          hit: function hit(id) {\n            var oldIndex = map[id], nuIndex = ++index;\n            queue4[nuIndex] = id;\n            map[id] = nuIndex;\n            if (!oldIndex) {\n              ++size;\n              if (size <= limit) {\n                return;\n              }\n              id = queue4[base];\n              del(id);\n              return id;\n            }\n            delete queue4[oldIndex];\n            if (base !== oldIndex) {\n              return;\n            }\n            while (!hasOwnProperty2.call(queue4, ++base)) {\n              continue;\n            }\n          },\n          delete: del = function del(id) {\n            var oldIndex = map[id];\n            if (!oldIndex) {\n              return;\n            }\n            delete queue4[oldIndex];\n            delete map[id];\n            --size;\n            if (base !== oldIndex) {\n              return;\n            }\n            if (!size) {\n              index = 0;\n              base = 1;\n              return;\n            }\n            while (!hasOwnProperty2.call(queue4, ++base)) {\n              continue;\n            }\n          },\n          clear: function clear() {\n            size = 0;\n            base = 1;\n            queue4 = create(null);\n            map = create(null);\n            index = 0;\n          }\n        };\n      };\n    });\n    var require_max = __commonJS(function() {\n      'use strict';\n      var toPosInteger = require_to_pos_integer();\n      var lruQueue = require_lru_queue();\n      var extensions = require_registered_extensions();\n      extensions.max = function(max, conf, options) {\n        var postfix, queue4, hit;\n        max = toPosInteger(max);\n        if (!max) {\n          return;\n        }\n        queue4 = lruQueue(max);\n        postfix = options.async && extensions.async || options.promise && extensions.promise ? 'async' : '';\n        conf.on('set' + postfix, hit = function hit(id) {\n          id = queue4.hit(id);\n          if (id === void 0) {\n            return;\n          }\n          conf['delete'](id);\n        });\n        conf.on('get' + postfix, hit);\n        conf.on('delete' + postfix, queue4['delete']);\n        conf.on('clear' + postfix, queue4.clear);\n      };\n    });\n    var require_ref_counter = __commonJS(function() {\n      'use strict';\n      var d = require_d();\n      var extensions = require_registered_extensions();\n      var create = Object.create;\n      var defineProperties = Object.defineProperties;\n      extensions.refCounter = function(ignore, conf, options) {\n        var cache20, postfix;\n        cache20 = create(null);\n        postfix = options.async && extensions.async || options.promise && extensions.promise ? 'async' : '';\n        conf.on('set' + postfix, function(id, length) {\n          cache20[id] = length || 1;\n        });\n        conf.on('get' + postfix, function(id) {\n          ++cache20[id];\n        });\n        conf.on('delete' + postfix, function(id) {\n          delete cache20[id];\n        });\n        conf.on('clear' + postfix, function() {\n          cache20 = {};\n        });\n        defineProperties(conf.memoized, {\n          deleteRef: d(function() {\n            var id = conf.get(arguments);\n            if (id === null) {\n              return null;\n            }\n            if (!cache20[id]) {\n              return null;\n            }\n            if (!--cache20[id]) {\n              conf['delete'](id);\n              return true;\n            }\n            return false;\n          }),\n          getRefCount: d(function() {\n            var id = conf.get(arguments);\n            if (id === null) {\n              return 0;\n            }\n            if (!cache20[id]) {\n              return 0;\n            }\n            return cache20[id];\n          })\n        });\n      };\n    });\n    var require_memoizee = __commonJS(function(exports, module) {\n      'use strict';\n      var normalizeOpts = require_normalize_options();\n      var resolveLength = require_resolve_length();\n      var plain = require_plain();\n      module.exports = function(fn) {\n        var options = normalizeOpts(arguments[1]), length;\n        if (!options.normalizer) {\n          length = options.length = resolveLength(options.length, fn.length, options.async);\n          if (length !== 0) {\n            if (options.primitive) {\n              if (length === false) {\n                options.normalizer = require_primitive();\n              } else if (length > 1) {\n                options.normalizer = require_get_primitive_fixed()(length);\n              }\n            } else if (length === false) {\n              options.normalizer = require_get()();\n            } else if (length === 1) {\n              options.normalizer = require_get_1()();\n            } else {\n              options.normalizer = require_get_fixed()(length);\n            }\n          }\n        }\n        if (options.async) {\n          require_async();\n        }\n        if (options.promise) {\n          require_promise();\n        }\n        if (options.dispose) {\n          require_dispose();\n        }\n        if (options.maxAge) {\n          require_max_age();\n        }\n        if (options.max) {\n          require_max();\n        }\n        if (options.refCounter) {\n          require_ref_counter();\n        }\n        return plain(fn, options);\n      };\n    });\n    var require_emoji_regex = __commonJS(function(exports, module) {\n      'use strict';\n      module.exports = function() {\n        return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F|\\uD83D\\uDC68(?:\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C[\\uDFFB-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)\\uD83C\\uDFFB|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83D\\uDC69(?:\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|(?:(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)\\uFE0F|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\u200D[\\u2640\\u2642])|\\uD83C\\uDFF4\\u200D\\u2620)\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF6\\uD83C\\uDDE6|[#\\*0-9]\\uFE0F\\u20E3|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC70\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD74\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD36\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5\\uDEEB\\uDEEC\\uDEF4-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n      };\n    });\n    var require_doT = __commonJS(function(exports, module) {\n      (function() {\n        'use strict';\n        var doT3 = {\n          name: 'doT',\n          version: '1.1.1',\n          templateSettings: {\n            evaluate: /\\{\\{([\\s\\S]+?(\\}?)+)\\}\\}/g,\n            interpolate: /\\{\\{=([\\s\\S]+?)\\}\\}/g,\n            encode: /\\{\\{!([\\s\\S]+?)\\}\\}/g,\n            use: /\\{\\{#([\\s\\S]+?)\\}\\}/g,\n            useParams: /(^|[^\\w$])def(?:\\.|\\[[\\'\\\"])([\\w$\\.]+)(?:[\\'\\\"]\\])?\\s*\\:\\s*([\\w$\\.]+|\\\"[^\\\"]+\\\"|\\'[^\\']+\\'|\\{[^\\}]+\\})/g,\n            define: /\\{\\{##\\s*([\\w\\.$]+)\\s*(\\:|=)([\\s\\S]+?)#\\}\\}/g,\n            defineParams: /^\\s*([\\w$]+):([\\s\\S]+)/,\n            conditional: /\\{\\{\\?(\\?)?\\s*([\\s\\S]*?)\\s*\\}\\}/g,\n            iterate: /\\{\\{~\\s*(?:\\}\\}|([\\s\\S]+?)\\s*\\:\\s*([\\w$]+)\\s*(?:\\:\\s*([\\w$]+))?\\s*\\}\\})/g,\n            varname: 'it',\n            strip: true,\n            append: true,\n            selfcontained: false,\n            doNotSkipEncoded: false\n          },\n          template: void 0,\n          compile: void 0,\n          log: true\n        };\n        (function() {\n          if ((typeof globalThis === 'undefined' ? 'undefined' : _typeof(globalThis)) === 'object') {\n            return;\n          }\n          try {\n            Object.defineProperty(Object.prototype, '__magic__', {\n              get: function get() {\n                return this;\n              },\n              configurable: true\n            });\n            __magic__.globalThis = __magic__;\n            delete Object.prototype.__magic__;\n          } catch (e) {\n            window.globalThis = function() {\n              if (typeof self !== 'undefined') {\n                return self;\n              }\n              if (typeof window !== 'undefined') {\n                return window;\n              }\n              if (typeof global !== 'undefined') {\n                return global;\n              }\n              if (typeof this !== 'undefined') {\n                return this;\n              }\n              throw new Error('Unable to locate global `this`');\n            }();\n          }\n        })();\n        doT3.encodeHTMLSource = function(doNotSkipEncoded) {\n          var encodeHTMLRules = {\n            '&': '&#38;',\n            '<': '&#60;',\n            '>': '&#62;',\n            '\"': '&#34;',\n            '\\'': '&#39;',\n            '/': '&#47;'\n          }, matchHTML = doNotSkipEncoded ? /[&<>\"'\\/]/g : /&(?!#?\\w+;)|<|>|\"|'|\\//g;\n          return function(code) {\n            return code ? code.toString().replace(matchHTML, function(m) {\n              return encodeHTMLRules[m] || m;\n            }) : '';\n          };\n        };\n        if (typeof module !== 'undefined' && module.exports) {\n          module.exports = doT3;\n        } else if (typeof define === 'function' && define.amd) {\n          define(function() {\n            return doT3;\n          });\n        } else {\n          globalThis.doT = doT3;\n        }\n        var startend = {\n          append: {\n            start: '\\'+(',\n            end: ')+\\'',\n            startencode: '\\'+encodeHTML('\n          },\n          split: {\n            start: '\\';out+=(',\n            end: ');out+=\\'',\n            startencode: '\\';out+=encodeHTML('\n          }\n        }, skip = /$^/;\n        function resolveDefs(c, block, def) {\n          return (typeof block === 'string' ? block : block.toString()).replace(c.define || skip, function(m, code, assign, value) {\n            if (code.indexOf('def.') === 0) {\n              code = code.substring(4);\n            }\n            if (!(code in def)) {\n              if (assign === ':') {\n                if (c.defineParams) {\n                  value.replace(c.defineParams, function(m2, param, v) {\n                    def[code] = {\n                      arg: param,\n                      text: v\n                    };\n                  });\n                }\n                if (!(code in def)) {\n                  def[code] = value;\n                }\n              } else {\n                new Function('def', 'def[\\'' + code + '\\']=' + value)(def);\n              }\n            }\n            return '';\n          }).replace(c.use || skip, function(m, code) {\n            if (c.useParams) {\n              code = code.replace(c.useParams, function(m2, s, d, param) {\n                if (def[d] && def[d].arg && param) {\n                  var rw = (d + ':' + param).replace(/'|\\\\/g, '_');\n                  def.__exp = def.__exp || {};\n                  def.__exp[rw] = def[d].text.replace(new RegExp('(^|[^\\\\w$])' + def[d].arg + '([^\\\\w$])', 'g'), '$1' + param + '$2');\n                  return s + 'def.__exp[\\'' + rw + '\\']';\n                }\n              });\n            }\n            var v = new Function('def', 'return ' + code)(def);\n            return v ? resolveDefs(c, v, def) : v;\n          });\n        }\n        function unescape(code) {\n          return code.replace(/\\\\('|\\\\)/g, '$1').replace(/[\\r\\t\\n]/g, ' ');\n        }\n        doT3.template = function(tmpl, c, def) {\n          c = c || doT3.templateSettings;\n          var cse = c.append ? startend.append : startend.split, needhtmlencode, sid = 0, indv, str = c.use || c.define ? resolveDefs(c, tmpl, def || {}) : tmpl;\n          str = ('var out=\\'' + (c.strip ? str.replace(/(^|\\r|\\n)\\t* +| +\\t*(\\r|\\n|$)/g, ' ').replace(/\\r|\\n|\\t|\\/\\*[\\s\\S]*?\\*\\//g, '') : str).replace(/'|\\\\/g, '\\\\$&').replace(c.interpolate || skip, function(m, code) {\n            return cse.start + unescape(code) + cse.end;\n          }).replace(c.encode || skip, function(m, code) {\n            needhtmlencode = true;\n            return cse.startencode + unescape(code) + cse.end;\n          }).replace(c.conditional || skip, function(m, elsecase, code) {\n            return elsecase ? code ? '\\';}else if(' + unescape(code) + '){out+=\\'' : '\\';}else{out+=\\'' : code ? '\\';if(' + unescape(code) + '){out+=\\'' : '\\';}out+=\\'';\n          }).replace(c.iterate || skip, function(m, iterate, vname, iname) {\n            if (!iterate) {\n              return '\\';} } out+=\\'';\n            }\n            sid += 1;\n            indv = iname || 'i' + sid;\n            iterate = unescape(iterate);\n            return '\\';var arr' + sid + '=' + iterate + ';if(arr' + sid + '){var ' + vname + ',' + indv + '=-1,l' + sid + '=arr' + sid + '.length-1;while(' + indv + '<l' + sid + '){' + vname + '=arr' + sid + '[' + indv + '+=1];out+=\\'';\n          }).replace(c.evaluate || skip, function(m, code) {\n            return '\\';' + unescape(code) + 'out+=\\'';\n          }) + '\\';return out;').replace(/\\n/g, '\\\\n').replace(/\\t/g, '\\\\t').replace(/\\r/g, '\\\\r').replace(/(\\s|;|\\}|^|\\{)out\\+='';/g, '$1').replace(/\\+''/g, '');\n          if (needhtmlencode) {\n            if (!c.selfcontained && globalThis && !globalThis._encodeHTML) {\n              globalThis._encodeHTML = doT3.encodeHTMLSource(c.doNotSkipEncoded);\n            }\n            str = 'var encodeHTML = typeof _encodeHTML !== \\'undefined\\' ? _encodeHTML : (' + doT3.encodeHTMLSource.toString() + '(' + (c.doNotSkipEncoded || '') + '));' + str;\n          }\n          try {\n            return new Function(c.varname, str);\n          } catch (e) {\n            if (typeof console !== 'undefined') {\n              console.log('Could not create a template function: ' + str);\n            }\n            throw e;\n          }\n        };\n        doT3.compile = function(tmpl, def) {\n          return doT3.template(tmpl, null, def);\n        };\n      })();\n    });\n    var require_es6_promise = __commonJS(function(exports, module) {\n      (function(global2, factory) {\n        _typeof(exports) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global2.ES6Promise = factory();\n      })(exports, function() {\n        'use strict';\n        function objectOrFunction(x) {\n          var type = _typeof(x);\n          return x !== null && (type === 'object' || type === 'function');\n        }\n        function isFunction(x) {\n          return typeof x === 'function';\n        }\n        var _isArray = void 0;\n        if (Array.isArray) {\n          _isArray = Array.isArray;\n        } else {\n          _isArray = function _isArray(x) {\n            return Object.prototype.toString.call(x) === '[object Array]';\n          };\n        }\n        var isArray = _isArray;\n        var len = 0;\n        var vertxNext = void 0;\n        var customSchedulerFn = void 0;\n        var asap = function asap2(callback, arg) {\n          queue4[len] = callback;\n          queue4[len + 1] = arg;\n          len += 2;\n          if (len === 2) {\n            if (customSchedulerFn) {\n              customSchedulerFn(flush);\n            } else {\n              scheduleFlush();\n            }\n          }\n        };\n        function setScheduler(scheduleFn) {\n          customSchedulerFn = scheduleFn;\n        }\n        function setAsap(asapFn) {\n          asap = asapFn;\n        }\n        var browserWindow = typeof window !== 'undefined' ? window : void 0;\n        var browserGlobal = browserWindow || {};\n        var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\n        var isNode2 = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n        var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n        function useNextTick() {\n          return function() {\n            return process.nextTick(flush);\n          };\n        }\n        function useVertxTimer() {\n          if (typeof vertxNext !== 'undefined') {\n            return function() {\n              vertxNext(flush);\n            };\n          }\n          return useSetTimeout();\n        }\n        function useMutationObserver() {\n          var iterations = 0;\n          var observer = new BrowserMutationObserver(flush);\n          var node = document.createTextNode('');\n          observer.observe(node, {\n            characterData: true\n          });\n          return function() {\n            node.data = iterations = ++iterations % 2;\n          };\n        }\n        function useMessageChannel() {\n          var channel = new MessageChannel();\n          channel.port1.onmessage = flush;\n          return function() {\n            return channel.port2.postMessage(0);\n          };\n        }\n        function useSetTimeout() {\n          var globalSetTimeout = setTimeout;\n          return function() {\n            return globalSetTimeout(flush, 1);\n          };\n        }\n        var queue4 = new Array(1e3);\n        function flush() {\n          for (var i = 0; i < len; i += 2) {\n            var callback = queue4[i];\n            var arg = queue4[i + 1];\n            callback(arg);\n            queue4[i] = void 0;\n            queue4[i + 1] = void 0;\n          }\n          len = 0;\n        }\n        function attemptVertx() {\n          try {\n            var vertx = Function('return this')().require('vertx');\n            vertxNext = vertx.runOnLoop || vertx.runOnContext;\n            return useVertxTimer();\n          } catch (e) {\n            return useSetTimeout();\n          }\n        }\n        var scheduleFlush = void 0;\n        if (isNode2) {\n          scheduleFlush = useNextTick();\n        } else if (BrowserMutationObserver) {\n          scheduleFlush = useMutationObserver();\n        } else if (isWorker) {\n          scheduleFlush = useMessageChannel();\n        } else if (browserWindow === void 0 && true) {\n          scheduleFlush = attemptVertx();\n        } else {\n          scheduleFlush = useSetTimeout();\n        }\n        function then(onFulfillment, onRejection) {\n          var parent = this;\n          var child = new this.constructor(noop4);\n          if (child[PROMISE_ID] === void 0) {\n            makePromise(child);\n          }\n          var _state = parent._state;\n          if (_state) {\n            var callback = arguments[_state - 1];\n            asap(function() {\n              return invokeCallback(_state, child, callback, parent._result);\n            });\n          } else {\n            subscribe2(parent, child, onFulfillment, onRejection);\n          }\n          return child;\n        }\n        function resolve$1(object) {\n          var Constructor = this;\n          if (object && _typeof(object) === 'object' && object.constructor === Constructor) {\n            return object;\n          }\n          var promise = new Constructor(noop4);\n          resolve(promise, object);\n          return promise;\n        }\n        var PROMISE_ID = Math.random().toString(36).substring(2);\n        function noop4() {}\n        var PENDING = void 0;\n        var FULFILLED = 1;\n        var REJECTED = 2;\n        function selfFulfillment() {\n          return new TypeError('You cannot resolve a promise with itself');\n        }\n        function cannotReturnOwn() {\n          return new TypeError('A promises callback cannot return that same promise.');\n        }\n        function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n          try {\n            then$$1.call(value, fulfillmentHandler, rejectionHandler);\n          } catch (e) {\n            return e;\n          }\n        }\n        function handleForeignThenable(promise, thenable, then$$1) {\n          asap(function(promise2) {\n            var sealed = false;\n            var error = tryThen(then$$1, thenable, function(value) {\n              if (sealed) {\n                return;\n              }\n              sealed = true;\n              if (thenable !== value) {\n                resolve(promise2, value);\n              } else {\n                fulfill(promise2, value);\n              }\n            }, function(reason) {\n              if (sealed) {\n                return;\n              }\n              sealed = true;\n              reject(promise2, reason);\n            }, 'Settle: ' + (promise2._label || ' unknown promise'));\n            if (!sealed && error) {\n              sealed = true;\n              reject(promise2, error);\n            }\n          }, promise);\n        }\n        function handleOwnThenable(promise, thenable) {\n          if (thenable._state === FULFILLED) {\n            fulfill(promise, thenable._result);\n          } else if (thenable._state === REJECTED) {\n            reject(promise, thenable._result);\n          } else {\n            subscribe2(thenable, void 0, function(value) {\n              return resolve(promise, value);\n            }, function(reason) {\n              return reject(promise, reason);\n            });\n          }\n        }\n        function handleMaybeThenable(promise, maybeThenable, then$$1) {\n          if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n            handleOwnThenable(promise, maybeThenable);\n          } else {\n            if (then$$1 === void 0) {\n              fulfill(promise, maybeThenable);\n            } else if (isFunction(then$$1)) {\n              handleForeignThenable(promise, maybeThenable, then$$1);\n            } else {\n              fulfill(promise, maybeThenable);\n            }\n          }\n        }\n        function resolve(promise, value) {\n          if (promise === value) {\n            reject(promise, selfFulfillment());\n          } else if (objectOrFunction(value)) {\n            var then$$1 = void 0;\n            try {\n              then$$1 = value.then;\n            } catch (error) {\n              reject(promise, error);\n              return;\n            }\n            handleMaybeThenable(promise, value, then$$1);\n          } else {\n            fulfill(promise, value);\n          }\n        }\n        function publishRejection(promise) {\n          if (promise._onerror) {\n            promise._onerror(promise._result);\n          }\n          publish(promise);\n        }\n        function fulfill(promise, value) {\n          if (promise._state !== PENDING) {\n            return;\n          }\n          promise._result = value;\n          promise._state = FULFILLED;\n          if (promise._subscribers.length !== 0) {\n            asap(publish, promise);\n          }\n        }\n        function reject(promise, reason) {\n          if (promise._state !== PENDING) {\n            return;\n          }\n          promise._state = REJECTED;\n          promise._result = reason;\n          asap(publishRejection, promise);\n        }\n        function subscribe2(parent, child, onFulfillment, onRejection) {\n          var _subscribers = parent._subscribers;\n          var length = _subscribers.length;\n          parent._onerror = null;\n          _subscribers[length] = child;\n          _subscribers[length + FULFILLED] = onFulfillment;\n          _subscribers[length + REJECTED] = onRejection;\n          if (length === 0 && parent._state) {\n            asap(publish, parent);\n          }\n        }\n        function publish(promise) {\n          var subscribers = promise._subscribers;\n          var settled = promise._state;\n          if (subscribers.length === 0) {\n            return;\n          }\n          var child = void 0, callback = void 0, detail = promise._result;\n          for (var i = 0; i < subscribers.length; i += 3) {\n            child = subscribers[i];\n            callback = subscribers[i + settled];\n            if (child) {\n              invokeCallback(settled, child, callback, detail);\n            } else {\n              callback(detail);\n            }\n          }\n          promise._subscribers.length = 0;\n        }\n        function invokeCallback(settled, promise, callback, detail) {\n          var hasCallback = isFunction(callback), value = void 0, error = void 0, succeeded = true;\n          if (hasCallback) {\n            try {\n              value = callback(detail);\n            } catch (e) {\n              succeeded = false;\n              error = e;\n            }\n            if (promise === value) {\n              reject(promise, cannotReturnOwn());\n              return;\n            }\n          } else {\n            value = detail;\n          }\n          if (promise._state !== PENDING) {} else if (hasCallback && succeeded) {\n            resolve(promise, value);\n          } else if (succeeded === false) {\n            reject(promise, error);\n          } else if (settled === FULFILLED) {\n            fulfill(promise, value);\n          } else if (settled === REJECTED) {\n            reject(promise, value);\n          }\n        }\n        function initializePromise(promise, resolver) {\n          try {\n            resolver(function resolvePromise(value) {\n              resolve(promise, value);\n            }, function rejectPromise(reason) {\n              reject(promise, reason);\n            });\n          } catch (e) {\n            reject(promise, e);\n          }\n        }\n        var id = 0;\n        function nextId() {\n          return id++;\n        }\n        function makePromise(promise) {\n          promise[PROMISE_ID] = id++;\n          promise._state = void 0;\n          promise._result = void 0;\n          promise._subscribers = [];\n        }\n        function validationError() {\n          return new Error('Array Methods must be provided an Array');\n        }\n        var Enumerator = function() {\n          function Enumerator2(Constructor, input) {\n            this._instanceConstructor = Constructor;\n            this.promise = new Constructor(noop4);\n            if (!this.promise[PROMISE_ID]) {\n              makePromise(this.promise);\n            }\n            if (isArray(input)) {\n              this.length = input.length;\n              this._remaining = input.length;\n              this._result = new Array(this.length);\n              if (this.length === 0) {\n                fulfill(this.promise, this._result);\n              } else {\n                this.length = this.length || 0;\n                this._enumerate(input);\n                if (this._remaining === 0) {\n                  fulfill(this.promise, this._result);\n                }\n              }\n            } else {\n              reject(this.promise, validationError());\n            }\n          }\n          Enumerator2.prototype._enumerate = function _enumerate(input) {\n            for (var i = 0; this._state === PENDING && i < input.length; i++) {\n              this._eachEntry(input[i], i);\n            }\n          };\n          Enumerator2.prototype._eachEntry = function _eachEntry(entry, i) {\n            var c = this._instanceConstructor;\n            var resolve$$1 = c.resolve;\n            if (resolve$$1 === resolve$1) {\n              var _then = void 0;\n              var error = void 0;\n              var didError = false;\n              try {\n                _then = entry.then;\n              } catch (e) {\n                didError = true;\n                error = e;\n              }\n              if (_then === then && entry._state !== PENDING) {\n                this._settledAt(entry._state, i, entry._result);\n              } else if (typeof _then !== 'function') {\n                this._remaining--;\n                this._result[i] = entry;\n              } else if (c === Promise$1) {\n                var promise = new c(noop4);\n                if (didError) {\n                  reject(promise, error);\n                } else {\n                  handleMaybeThenable(promise, entry, _then);\n                }\n                this._willSettleAt(promise, i);\n              } else {\n                this._willSettleAt(new c(function(resolve$$12) {\n                  return resolve$$12(entry);\n                }), i);\n              }\n            } else {\n              this._willSettleAt(resolve$$1(entry), i);\n            }\n          };\n          Enumerator2.prototype._settledAt = function _settledAt(state, i, value) {\n            var promise = this.promise;\n            if (promise._state === PENDING) {\n              this._remaining--;\n              if (state === REJECTED) {\n                reject(promise, value);\n              } else {\n                this._result[i] = value;\n              }\n            }\n            if (this._remaining === 0) {\n              fulfill(promise, this._result);\n            }\n          };\n          Enumerator2.prototype._willSettleAt = function _willSettleAt(promise, i) {\n            var enumerator = this;\n            subscribe2(promise, void 0, function(value) {\n              return enumerator._settledAt(FULFILLED, i, value);\n            }, function(reason) {\n              return enumerator._settledAt(REJECTED, i, reason);\n            });\n          };\n          return Enumerator2;\n        }();\n        function all(entries) {\n          return new Enumerator(this, entries).promise;\n        }\n        function race(entries) {\n          var Constructor = this;\n          if (!isArray(entries)) {\n            return new Constructor(function(_, reject2) {\n              return reject2(new TypeError('You must pass an array to race.'));\n            });\n          } else {\n            return new Constructor(function(resolve2, reject2) {\n              var length = entries.length;\n              for (var i = 0; i < length; i++) {\n                Constructor.resolve(entries[i]).then(resolve2, reject2);\n              }\n            });\n          }\n        }\n        function reject$1(reason) {\n          var Constructor = this;\n          var promise = new Constructor(noop4);\n          reject(promise, reason);\n          return promise;\n        }\n        function needsResolver() {\n          throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n        }\n        function needsNew() {\n          throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n        }\n        var Promise$1 = function() {\n          function Promise2(resolver) {\n            this[PROMISE_ID] = nextId();\n            this._result = this._state = void 0;\n            this._subscribers = [];\n            if (noop4 !== resolver) {\n              typeof resolver !== 'function' && needsResolver();\n              this instanceof Promise2 ? initializePromise(this, resolver) : needsNew();\n            }\n          }\n          Promise2.prototype['catch'] = function _catch(onRejection) {\n            return this.then(null, onRejection);\n          };\n          Promise2.prototype['finally'] = function _finally(callback) {\n            var promise = this;\n            var constructor = promise.constructor;\n            if (isFunction(callback)) {\n              return promise.then(function(value) {\n                return constructor.resolve(callback()).then(function() {\n                  return value;\n                });\n              }, function(reason) {\n                return constructor.resolve(callback()).then(function() {\n                  throw reason;\n                });\n              });\n            }\n            return promise.then(callback, callback);\n          };\n          return Promise2;\n        }();\n        Promise$1.prototype.then = then;\n        Promise$1.all = all;\n        Promise$1.race = race;\n        Promise$1.resolve = resolve$1;\n        Promise$1.reject = reject$1;\n        Promise$1._setScheduler = setScheduler;\n        Promise$1._setAsap = setAsap;\n        Promise$1._asap = asap;\n        function polyfill() {\n          var local = void 0;\n          if (typeof global !== 'undefined') {\n            local = global;\n          } else if (typeof self !== 'undefined') {\n            local = self;\n          } else {\n            try {\n              local = Function('return this')();\n            } catch (e) {\n              throw new Error('polyfill failed because global object is unavailable in this environment');\n            }\n          }\n          var P = local.Promise;\n          if (P) {\n            var promiseToString = null;\n            try {\n              promiseToString = Object.prototype.toString.call(P.resolve());\n            } catch (e) {}\n            if (promiseToString === '[object Promise]' && !P.cast) {\n              return;\n            }\n          }\n          local.Promise = Promise$1;\n        }\n        Promise$1.polyfill = polyfill;\n        Promise$1.Promise = Promise$1;\n        return Promise$1;\n      });\n    });\n    var require_typedarray = __commonJS(function(exports) {\n      var undefined2 = void 0;\n      var MAX_ARRAY_LENGTH = 1e5;\n      var ECMAScript = function() {\n        var opts = Object.prototype.toString, ophop = Object.prototype.hasOwnProperty;\n        return {\n          Class: function Class(v) {\n            return opts.call(v).replace(/^\\[object *|\\]$/g, '');\n          },\n          HasProperty: function HasProperty(o, p) {\n            return p in o;\n          },\n          HasOwnProperty: function HasOwnProperty(o, p) {\n            return ophop.call(o, p);\n          },\n          IsCallable: function IsCallable(o) {\n            return typeof o === 'function';\n          },\n          ToInt32: function ToInt32(v) {\n            return v >> 0;\n          },\n          ToUint32: function ToUint32(v) {\n            return v >>> 0;\n          }\n        };\n      }();\n      var LN2 = Math.LN2;\n      var abs = Math.abs;\n      var floor = Math.floor;\n      var log10 = Math.log;\n      var min = Math.min;\n      var pow = Math.pow;\n      var round = Math.round;\n      function configureProperties(obj) {\n        if (getOwnPropNames && defineProp) {\n          var props = getOwnPropNames(obj), i;\n          for (i = 0; i < props.length; i += 1) {\n            defineProp(obj, props[i], {\n              value: obj[props[i]],\n              writable: false,\n              enumerable: false,\n              configurable: false\n            });\n          }\n        }\n      }\n      var defineProp;\n      if (Object.defineProperty && function() {\n        try {\n          Object.defineProperty({}, 'x', {});\n          return true;\n        } catch (e) {\n          return false;\n        }\n      }()) {\n        defineProp = Object.defineProperty;\n      } else {\n        defineProp = function defineProp(o, p, desc) {\n          if (!o === Object(o)) {\n            throw new TypeError('Object.defineProperty called on non-object');\n          }\n          if (ECMAScript.HasProperty(desc, 'get') && Object.prototype.__defineGetter__) {\n            Object.prototype.__defineGetter__.call(o, p, desc.get);\n          }\n          if (ECMAScript.HasProperty(desc, 'set') && Object.prototype.__defineSetter__) {\n            Object.prototype.__defineSetter__.call(o, p, desc.set);\n          }\n          if (ECMAScript.HasProperty(desc, 'value')) {\n            o[p] = desc.value;\n          }\n          return o;\n        };\n      }\n      var getOwnPropNames = Object.getOwnPropertyNames || function(o) {\n        if (o !== Object(o)) {\n          throw new TypeError('Object.getOwnPropertyNames called on non-object');\n        }\n        var props = [], p;\n        for (p in o) {\n          if (ECMAScript.HasOwnProperty(o, p)) {\n            props.push(p);\n          }\n        }\n        return props;\n      };\n      function makeArrayAccessors(obj) {\n        if (!defineProp) {\n          return;\n        }\n        if (obj.length > MAX_ARRAY_LENGTH) {\n          throw new RangeError('Array too large for polyfill');\n        }\n        function makeArrayAccessor(index) {\n          defineProp(obj, index, {\n            get: function get() {\n              return obj._getter(index);\n            },\n            set: function set(v) {\n              obj._setter(index, v);\n            },\n            enumerable: true,\n            configurable: false\n          });\n        }\n        var i;\n        for (i = 0; i < obj.length; i += 1) {\n          makeArrayAccessor(i);\n        }\n      }\n      function as_signed(value, bits) {\n        var s = 32 - bits;\n        return value << s >> s;\n      }\n      function as_unsigned(value, bits) {\n        var s = 32 - bits;\n        return value << s >>> s;\n      }\n      function packI8(n) {\n        return [ n & 255 ];\n      }\n      function unpackI8(bytes) {\n        return as_signed(bytes[0], 8);\n      }\n      function packU8(n) {\n        return [ n & 255 ];\n      }\n      function unpackU8(bytes) {\n        return as_unsigned(bytes[0], 8);\n      }\n      function packU8Clamped(n) {\n        n = round(Number(n));\n        return [ n < 0 ? 0 : n > 255 ? 255 : n & 255 ];\n      }\n      function packI16(n) {\n        return [ n >> 8 & 255, n & 255 ];\n      }\n      function unpackI16(bytes) {\n        return as_signed(bytes[0] << 8 | bytes[1], 16);\n      }\n      function packU16(n) {\n        return [ n >> 8 & 255, n & 255 ];\n      }\n      function unpackU16(bytes) {\n        return as_unsigned(bytes[0] << 8 | bytes[1], 16);\n      }\n      function packI32(n) {\n        return [ n >> 24 & 255, n >> 16 & 255, n >> 8 & 255, n & 255 ];\n      }\n      function unpackI32(bytes) {\n        return as_signed(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32);\n      }\n      function packU32(n) {\n        return [ n >> 24 & 255, n >> 16 & 255, n >> 8 & 255, n & 255 ];\n      }\n      function unpackU32(bytes) {\n        return as_unsigned(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32);\n      }\n      function packIEEE754(v, ebits, fbits) {\n        var bias = (1 << ebits - 1) - 1, s, e, f, ln, i, bits, str, bytes;\n        function roundToEven(n) {\n          var w = floor(n), f2 = n - w;\n          if (f2 < .5) {\n            return w;\n          }\n          if (f2 > .5) {\n            return w + 1;\n          }\n          return w % 2 ? w + 1 : w;\n        }\n        if (v !== v) {\n          e = (1 << ebits) - 1;\n          f = pow(2, fbits - 1);\n          s = 0;\n        } else if (v === Infinity || v === -Infinity) {\n          e = (1 << ebits) - 1;\n          f = 0;\n          s = v < 0 ? 1 : 0;\n        } else if (v === 0) {\n          e = 0;\n          f = 0;\n          s = 1 / v === -Infinity ? 1 : 0;\n        } else {\n          s = v < 0;\n          v = abs(v);\n          if (v >= pow(2, 1 - bias)) {\n            e = min(floor(log10(v) / LN2), 1023);\n            f = roundToEven(v / pow(2, e) * pow(2, fbits));\n            if (f / pow(2, fbits) >= 2) {\n              e = e + 1;\n              f = 1;\n            }\n            if (e > bias) {\n              e = (1 << ebits) - 1;\n              f = 0;\n            } else {\n              e = e + bias;\n              f = f - pow(2, fbits);\n            }\n          } else {\n            e = 0;\n            f = roundToEven(v / pow(2, 1 - bias - fbits));\n          }\n        }\n        bits = [];\n        for (i = fbits; i; i -= 1) {\n          bits.push(f % 2 ? 1 : 0);\n          f = floor(f / 2);\n        }\n        for (i = ebits; i; i -= 1) {\n          bits.push(e % 2 ? 1 : 0);\n          e = floor(e / 2);\n        }\n        bits.push(s ? 1 : 0);\n        bits.reverse();\n        str = bits.join('');\n        bytes = [];\n        while (str.length) {\n          bytes.push(parseInt(str.substring(0, 8), 2));\n          str = str.substring(8);\n        }\n        return bytes;\n      }\n      function unpackIEEE754(bytes, ebits, fbits) {\n        var bits = [], i, j, b, str, bias, s, e, f;\n        for (i = bytes.length; i; i -= 1) {\n          b = bytes[i - 1];\n          for (j = 8; j; j -= 1) {\n            bits.push(b % 2 ? 1 : 0);\n            b = b >> 1;\n          }\n        }\n        bits.reverse();\n        str = bits.join('');\n        bias = (1 << ebits - 1) - 1;\n        s = parseInt(str.substring(0, 1), 2) ? -1 : 1;\n        e = parseInt(str.substring(1, 1 + ebits), 2);\n        f = parseInt(str.substring(1 + ebits), 2);\n        if (e === (1 << ebits) - 1) {\n          return f !== 0 ? NaN : s * Infinity;\n        } else if (e > 0) {\n          return s * pow(2, e - bias) * (1 + f / pow(2, fbits));\n        } else if (f !== 0) {\n          return s * pow(2, -(bias - 1)) * (f / pow(2, fbits));\n        } else {\n          return s < 0 ? -0 : 0;\n        }\n      }\n      function unpackF64(b) {\n        return unpackIEEE754(b, 11, 52);\n      }\n      function packF64(v) {\n        return packIEEE754(v, 11, 52);\n      }\n      function unpackF32(b) {\n        return unpackIEEE754(b, 8, 23);\n      }\n      function packF32(v) {\n        return packIEEE754(v, 8, 23);\n      }\n      (function() {\n        var ArrayBuffer = function ArrayBuffer2(length) {\n          length = ECMAScript.ToInt32(length);\n          if (length < 0) {\n            throw new RangeError('ArrayBuffer size is not a small enough positive integer');\n          }\n          this.byteLength = length;\n          this._bytes = [];\n          this._bytes.length = length;\n          var i;\n          for (i = 0; i < this.byteLength; i += 1) {\n            this._bytes[i] = 0;\n          }\n          configureProperties(this);\n        };\n        exports.ArrayBuffer = exports.ArrayBuffer || ArrayBuffer;\n        var ArrayBufferView = function ArrayBufferView2() {};\n        function makeConstructor(bytesPerElement, pack, unpack) {\n          var _ctor;\n          _ctor = function ctor(buffer, byteOffset, length) {\n            var array, sequence, i, s;\n            if (!arguments.length || typeof arguments[0] === 'number') {\n              this.length = ECMAScript.ToInt32(arguments[0]);\n              if (length < 0) {\n                throw new RangeError('ArrayBufferView size is not a small enough positive integer');\n              }\n              this.byteLength = this.length * this.BYTES_PER_ELEMENT;\n              this.buffer = new ArrayBuffer(this.byteLength);\n              this.byteOffset = 0;\n            } else if (_typeof(arguments[0]) === 'object' && arguments[0].constructor === _ctor) {\n              array = arguments[0];\n              this.length = array.length;\n              this.byteLength = this.length * this.BYTES_PER_ELEMENT;\n              this.buffer = new ArrayBuffer(this.byteLength);\n              this.byteOffset = 0;\n              for (i = 0; i < this.length; i += 1) {\n                this._setter(i, array._getter(i));\n              }\n            } else if (_typeof(arguments[0]) === 'object' && !(arguments[0] instanceof ArrayBuffer || ECMAScript.Class(arguments[0]) === 'ArrayBuffer')) {\n              sequence = arguments[0];\n              this.length = ECMAScript.ToUint32(sequence.length);\n              this.byteLength = this.length * this.BYTES_PER_ELEMENT;\n              this.buffer = new ArrayBuffer(this.byteLength);\n              this.byteOffset = 0;\n              for (i = 0; i < this.length; i += 1) {\n                s = sequence[i];\n                this._setter(i, Number(s));\n              }\n            } else if (_typeof(arguments[0]) === 'object' && (arguments[0] instanceof ArrayBuffer || ECMAScript.Class(arguments[0]) === 'ArrayBuffer')) {\n              this.buffer = buffer;\n              this.byteOffset = ECMAScript.ToUint32(byteOffset);\n              if (this.byteOffset > this.buffer.byteLength) {\n                throw new RangeError('byteOffset out of range');\n              }\n              if (this.byteOffset % this.BYTES_PER_ELEMENT) {\n                throw new RangeError('ArrayBuffer length minus the byteOffset is not a multiple of the element size.');\n              }\n              if (arguments.length < 3) {\n                this.byteLength = this.buffer.byteLength - this.byteOffset;\n                if (this.byteLength % this.BYTES_PER_ELEMENT) {\n                  throw new RangeError('length of buffer minus byteOffset not a multiple of the element size');\n                }\n                this.length = this.byteLength / this.BYTES_PER_ELEMENT;\n              } else {\n                this.length = ECMAScript.ToUint32(length);\n                this.byteLength = this.length * this.BYTES_PER_ELEMENT;\n              }\n              if (this.byteOffset + this.byteLength > this.buffer.byteLength) {\n                throw new RangeError('byteOffset and length reference an area beyond the end of the buffer');\n              }\n            } else {\n              throw new TypeError('Unexpected argument type(s)');\n            }\n            this.constructor = _ctor;\n            configureProperties(this);\n            makeArrayAccessors(this);\n          };\n          _ctor.prototype = new ArrayBufferView();\n          _ctor.prototype.BYTES_PER_ELEMENT = bytesPerElement;\n          _ctor.prototype._pack = pack;\n          _ctor.prototype._unpack = unpack;\n          _ctor.BYTES_PER_ELEMENT = bytesPerElement;\n          _ctor.prototype._getter = function(index) {\n            if (arguments.length < 1) {\n              throw new SyntaxError('Not enough arguments');\n            }\n            index = ECMAScript.ToUint32(index);\n            if (index >= this.length) {\n              return undefined2;\n            }\n            var bytes = [], i, o;\n            for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT; i < this.BYTES_PER_ELEMENT; i += 1, \n            o += 1) {\n              bytes.push(this.buffer._bytes[o]);\n            }\n            return this._unpack(bytes);\n          };\n          _ctor.prototype.get = _ctor.prototype._getter;\n          _ctor.prototype._setter = function(index, value) {\n            if (arguments.length < 2) {\n              throw new SyntaxError('Not enough arguments');\n            }\n            index = ECMAScript.ToUint32(index);\n            if (index >= this.length) {\n              return undefined2;\n            }\n            var bytes = this._pack(value), i, o;\n            for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT; i < this.BYTES_PER_ELEMENT; i += 1, \n            o += 1) {\n              this.buffer._bytes[o] = bytes[i];\n            }\n          };\n          _ctor.prototype.set = function(index, value) {\n            if (arguments.length < 1) {\n              throw new SyntaxError('Not enough arguments');\n            }\n            var array, sequence, offset, len, i, s, d, byteOffset, byteLength, tmp;\n            if (_typeof(arguments[0]) === 'object' && arguments[0].constructor === this.constructor) {\n              array = arguments[0];\n              offset = ECMAScript.ToUint32(arguments[1]);\n              if (offset + array.length > this.length) {\n                throw new RangeError('Offset plus length of array is out of range');\n              }\n              byteOffset = this.byteOffset + offset * this.BYTES_PER_ELEMENT;\n              byteLength = array.length * this.BYTES_PER_ELEMENT;\n              if (array.buffer === this.buffer) {\n                tmp = [];\n                for (i = 0, s = array.byteOffset; i < byteLength; i += 1, s += 1) {\n                  tmp[i] = array.buffer._bytes[s];\n                }\n                for (i = 0, d = byteOffset; i < byteLength; i += 1, d += 1) {\n                  this.buffer._bytes[d] = tmp[i];\n                }\n              } else {\n                for (i = 0, s = array.byteOffset, d = byteOffset; i < byteLength; i += 1, s += 1, \n                d += 1) {\n                  this.buffer._bytes[d] = array.buffer._bytes[s];\n                }\n              }\n            } else if (_typeof(arguments[0]) === 'object' && typeof arguments[0].length !== 'undefined') {\n              sequence = arguments[0];\n              len = ECMAScript.ToUint32(sequence.length);\n              offset = ECMAScript.ToUint32(arguments[1]);\n              if (offset + len > this.length) {\n                throw new RangeError('Offset plus length of array is out of range');\n              }\n              for (i = 0; i < len; i += 1) {\n                s = sequence[i];\n                this._setter(offset + i, Number(s));\n              }\n            } else {\n              throw new TypeError('Unexpected argument type(s)');\n            }\n          };\n          _ctor.prototype.subarray = function(start, end) {\n            function clamp(v, min2, max) {\n              return v < min2 ? min2 : v > max ? max : v;\n            }\n            start = ECMAScript.ToInt32(start);\n            end = ECMAScript.ToInt32(end);\n            if (arguments.length < 1) {\n              start = 0;\n            }\n            if (arguments.length < 2) {\n              end = this.length;\n            }\n            if (start < 0) {\n              start = this.length + start;\n            }\n            if (end < 0) {\n              end = this.length + end;\n            }\n            start = clamp(start, 0, this.length);\n            end = clamp(end, 0, this.length);\n            var len = end - start;\n            if (len < 0) {\n              len = 0;\n            }\n            return new this.constructor(this.buffer, this.byteOffset + start * this.BYTES_PER_ELEMENT, len);\n          };\n          return _ctor;\n        }\n        var Int8Array = makeConstructor(1, packI8, unpackI8);\n        var Uint8Array2 = makeConstructor(1, packU8, unpackU8);\n        var Uint8ClampedArray2 = makeConstructor(1, packU8Clamped, unpackU8);\n        var Int16Array = makeConstructor(2, packI16, unpackI16);\n        var Uint16Array = makeConstructor(2, packU16, unpackU16);\n        var Int32Array = makeConstructor(4, packI32, unpackI32);\n        var Uint32Array3 = makeConstructor(4, packU32, unpackU32);\n        var Float32Array = makeConstructor(4, packF32, unpackF32);\n        var Float64Array = makeConstructor(8, packF64, unpackF64);\n        exports.Int8Array = exports.Int8Array || Int8Array;\n        exports.Uint8Array = exports.Uint8Array || Uint8Array2;\n        exports.Uint8ClampedArray = exports.Uint8ClampedArray || Uint8ClampedArray2;\n        exports.Int16Array = exports.Int16Array || Int16Array;\n        exports.Uint16Array = exports.Uint16Array || Uint16Array;\n        exports.Int32Array = exports.Int32Array || Int32Array;\n        exports.Uint32Array = exports.Uint32Array || Uint32Array3;\n        exports.Float32Array = exports.Float32Array || Float32Array;\n        exports.Float64Array = exports.Float64Array || Float64Array;\n      })();\n      (function() {\n        function r(array, index) {\n          return ECMAScript.IsCallable(array.get) ? array.get(index) : array[index];\n        }\n        var IS_BIG_ENDIAN = function() {\n          var u16array = new exports.Uint16Array([ 4660 ]), u8array = new exports.Uint8Array(u16array.buffer);\n          return r(u8array, 0) === 18;\n        }();\n        var DataView = function DataView2(buffer, byteOffset, byteLength) {\n          if (arguments.length === 0) {\n            buffer = new exports.ArrayBuffer(0);\n          } else if (!(buffer instanceof exports.ArrayBuffer || ECMAScript.Class(buffer) === 'ArrayBuffer')) {\n            throw new TypeError('TypeError');\n          }\n          this.buffer = buffer || new exports.ArrayBuffer(0);\n          this.byteOffset = ECMAScript.ToUint32(byteOffset);\n          if (this.byteOffset > this.buffer.byteLength) {\n            throw new RangeError('byteOffset out of range');\n          }\n          if (arguments.length < 3) {\n            this.byteLength = this.buffer.byteLength - this.byteOffset;\n          } else {\n            this.byteLength = ECMAScript.ToUint32(byteLength);\n          }\n          if (this.byteOffset + this.byteLength > this.buffer.byteLength) {\n            throw new RangeError('byteOffset and length reference an area beyond the end of the buffer');\n          }\n          configureProperties(this);\n        };\n        function makeGetter(arrayType) {\n          return function(byteOffset, littleEndian) {\n            byteOffset = ECMAScript.ToUint32(byteOffset);\n            if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength) {\n              throw new RangeError('Array index out of range');\n            }\n            byteOffset += this.byteOffset;\n            var uint8Array = new exports.Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT), bytes = [], i;\n            for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1) {\n              bytes.push(r(uint8Array, i));\n            }\n            if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN)) {\n              bytes.reverse();\n            }\n            return r(new arrayType(new exports.Uint8Array(bytes).buffer), 0);\n          };\n        }\n        DataView.prototype.getUint8 = makeGetter(exports.Uint8Array);\n        DataView.prototype.getInt8 = makeGetter(exports.Int8Array);\n        DataView.prototype.getUint16 = makeGetter(exports.Uint16Array);\n        DataView.prototype.getInt16 = makeGetter(exports.Int16Array);\n        DataView.prototype.getUint32 = makeGetter(exports.Uint32Array);\n        DataView.prototype.getInt32 = makeGetter(exports.Int32Array);\n        DataView.prototype.getFloat32 = makeGetter(exports.Float32Array);\n        DataView.prototype.getFloat64 = makeGetter(exports.Float64Array);\n        function makeSetter(arrayType) {\n          return function(byteOffset, value, littleEndian) {\n            byteOffset = ECMAScript.ToUint32(byteOffset);\n            if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength) {\n              throw new RangeError('Array index out of range');\n            }\n            var typeArray = new arrayType([ value ]), byteArray = new exports.Uint8Array(typeArray.buffer), bytes = [], i, byteView;\n            for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1) {\n              bytes.push(r(byteArray, i));\n            }\n            if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN)) {\n              bytes.reverse();\n            }\n            byteView = new exports.Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT);\n            byteView.set(bytes);\n          };\n        }\n        DataView.prototype.setUint8 = makeSetter(exports.Uint8Array);\n        DataView.prototype.setInt8 = makeSetter(exports.Int8Array);\n        DataView.prototype.setUint16 = makeSetter(exports.Uint16Array);\n        DataView.prototype.setInt16 = makeSetter(exports.Int16Array);\n        DataView.prototype.setUint32 = makeSetter(exports.Uint32Array);\n        DataView.prototype.setInt32 = makeSetter(exports.Int32Array);\n        DataView.prototype.setFloat32 = makeSetter(exports.Float32Array);\n        DataView.prototype.setFloat64 = makeSetter(exports.Float64Array);\n        exports.DataView = exports.DataView || DataView;\n      })();\n    });\n    var require_weakmap_polyfill = __commonJS(function(exports) {\n      (function(self2) {\n        'use strict';\n        if (self2.WeakMap) {\n          return;\n        }\n        var hasOwnProperty2 = Object.prototype.hasOwnProperty;\n        var defineProperty = function defineProperty(object, name, value) {\n          if (Object.defineProperty) {\n            Object.defineProperty(object, name, {\n              configurable: true,\n              writable: true,\n              value: value\n            });\n          } else {\n            object[name] = value;\n          }\n        };\n        self2.WeakMap = function() {\n          function WeakMap2() {\n            if (this === void 0) {\n              throw new TypeError('Constructor WeakMap requires \\'new\\'');\n            }\n            defineProperty(this, '_id', genId('_WeakMap'));\n            if (arguments.length > 0) {\n              throw new TypeError('WeakMap iterable is not supported');\n            }\n          }\n          defineProperty(WeakMap2.prototype, 'delete', function(key) {\n            checkInstance(this, 'delete');\n            if (!isObject(key)) {\n              return false;\n            }\n            var entry = key[this._id];\n            if (entry && entry[0] === key) {\n              delete key[this._id];\n              return true;\n            }\n            return false;\n          });\n          defineProperty(WeakMap2.prototype, 'get', function(key) {\n            checkInstance(this, 'get');\n            if (!isObject(key)) {\n              return void 0;\n            }\n            var entry = key[this._id];\n            if (entry && entry[0] === key) {\n              return entry[1];\n            }\n            return void 0;\n          });\n          defineProperty(WeakMap2.prototype, 'has', function(key) {\n            checkInstance(this, 'has');\n            if (!isObject(key)) {\n              return false;\n            }\n            var entry = key[this._id];\n            if (entry && entry[0] === key) {\n              return true;\n            }\n            return false;\n          });\n          defineProperty(WeakMap2.prototype, 'set', function(key, value) {\n            checkInstance(this, 'set');\n            if (!isObject(key)) {\n              throw new TypeError('Invalid value used as weak map key');\n            }\n            var entry = key[this._id];\n            if (entry && entry[0] === key) {\n              entry[1] = value;\n              return this;\n            }\n            defineProperty(key, this._id, [ key, value ]);\n            return this;\n          });\n          function checkInstance(x, methodName) {\n            if (!isObject(x) || !hasOwnProperty2.call(x, '_id')) {\n              throw new TypeError(methodName + ' method called on incompatible receiver ' + _typeof(x));\n            }\n          }\n          function genId(prefix) {\n            return prefix + '_' + rand() + '.' + rand();\n          }\n          function rand() {\n            return Math.random().toString().substring(2);\n          }\n          defineProperty(WeakMap2, '_polyfill', true);\n          return WeakMap2;\n        }();\n        function isObject(x) {\n          return Object(x) === x;\n        }\n      })(typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : exports);\n    });\n    var definitions = [ {\n      name: 'NA',\n      value: 'inapplicable',\n      priority: 0,\n      group: 'inapplicable'\n    }, {\n      name: 'PASS',\n      value: 'passed',\n      priority: 1,\n      group: 'passes'\n    }, {\n      name: 'CANTTELL',\n      value: 'cantTell',\n      priority: 2,\n      group: 'incomplete'\n    }, {\n      name: 'FAIL',\n      value: 'failed',\n      priority: 3,\n      group: 'violations'\n    } ];\n    var constants = {\n      helpUrlBase: 'https://dequeuniversity.com/rules/',\n      results: [],\n      resultGroups: [],\n      resultGroupMap: {},\n      impact: Object.freeze([ 'minor', 'moderate', 'serious', 'critical' ]),\n      preload: Object.freeze({\n        assets: [ 'cssom', 'media' ],\n        timeout: 1e4\n      }),\n      allOrigins: '<unsafe_all_origins>',\n      sameOrigin: '<same_origin>'\n    };\n    definitions.forEach(function(definition) {\n      var name = definition.name;\n      var value = definition.value;\n      var priority = definition.priority;\n      var group = definition.group;\n      constants[name] = value;\n      constants[name + '_PRIO'] = priority;\n      constants[name + '_GROUP'] = group;\n      constants.results[priority] = value;\n      constants.resultGroups[priority] = group;\n      constants.resultGroupMap[value] = group;\n    });\n    Object.freeze(constants.results);\n    Object.freeze(constants.resultGroups);\n    Object.freeze(constants.resultGroupMap);\n    Object.freeze(constants);\n    var constants_default = constants;\n    function log() {\n      if ((typeof console === 'undefined' ? 'undefined' : _typeof(console)) === 'object' && console.log) {\n        Function.prototype.apply.call(console.log, console, arguments);\n      }\n    }\n    var log_default = log;\n    var whitespaceRegex = /[\\t\\r\\n\\f]/g;\n    var AbstractVirtualNode = function() {\n      function AbstractVirtualNode() {\n        _classCallCheck(this, AbstractVirtualNode);\n        this.parent = void 0;\n      }\n      _createClass(AbstractVirtualNode, [ {\n        key: 'attr',\n        value: function attr() {\n          throw new Error('VirtualNode class must have an \"attr\" function');\n        }\n      }, {\n        key: 'hasAttr',\n        value: function hasAttr() {\n          throw new Error('VirtualNode class must have a \"hasAttr\" function');\n        }\n      }, {\n        key: 'hasClass',\n        value: function hasClass(className) {\n          var classAttr = this.attr('class');\n          if (!classAttr) {\n            return false;\n          }\n          var selector = ' ' + className + ' ';\n          return (' ' + classAttr + ' ').replace(whitespaceRegex, ' ').indexOf(selector) >= 0;\n        }\n      }, {\n        key: 'props',\n        get: function get() {\n          throw new Error('VirtualNode class must have a \"props\" object consisting of \"nodeType\" and \"nodeName\" properties');\n        }\n      }, {\n        key: 'attrNames',\n        get: function get() {\n          throw new Error('VirtualNode class must have an \"attrNames\" property');\n        }\n      } ]);\n      return AbstractVirtualNode;\n    }();\n    var abstract_virtual_node_default = AbstractVirtualNode;\n    var utils_exports = {};\n    __export(utils_exports, {\n      DqElement: function DqElement() {\n        return dq_element_default;\n      },\n      aggregate: function aggregate() {\n        return aggregate_default;\n      },\n      aggregateChecks: function aggregateChecks() {\n        return aggregate_checks_default;\n      },\n      aggregateNodeResults: function aggregateNodeResults() {\n        return aggregate_node_results_default;\n      },\n      aggregateResult: function aggregateResult() {\n        return aggregate_result_default;\n      },\n      areStylesSet: function areStylesSet() {\n        return are_styles_set_default;\n      },\n      assert: function assert() {\n        return assert_default;\n      },\n      checkHelper: function checkHelper() {\n        return check_helper_default;\n      },\n      clone: function clone() {\n        return clone_default;\n      },\n      closest: function closest() {\n        return closest_default;\n      },\n      collectResultsFromFrames: function collectResultsFromFrames() {\n        return collect_results_from_frames_default;\n      },\n      contains: function contains() {\n        return contains_default;\n      },\n      convertSelector: function convertSelector() {\n        return _convertSelector;\n      },\n      cssParser: function cssParser() {\n        return css_parser_default;\n      },\n      deepMerge: function deepMerge() {\n        return deep_merge_default;\n      },\n      escapeSelector: function escapeSelector() {\n        return escape_selector_default;\n      },\n      extendMetaData: function extendMetaData() {\n        return extend_meta_data_default;\n      },\n      filterHtmlAttrs: function filterHtmlAttrs() {\n        return filter_html_attrs_default;\n      },\n      finalizeRuleResult: function finalizeRuleResult() {\n        return finalize_result_default;\n      },\n      findBy: function findBy() {\n        return find_by_default;\n      },\n      getAllChecks: function getAllChecks() {\n        return get_all_checks_default;\n      },\n      getAncestry: function getAncestry() {\n        return _getAncestry;\n      },\n      getBaseLang: function getBaseLang() {\n        return get_base_lang_default;\n      },\n      getCheckMessage: function getCheckMessage() {\n        return get_check_message_default;\n      },\n      getCheckOption: function getCheckOption() {\n        return get_check_option_default;\n      },\n      getFlattenedTree: function getFlattenedTree() {\n        return get_flattened_tree_default;\n      },\n      getFriendlyUriEnd: function getFriendlyUriEnd() {\n        return get_friendly_uri_end_default;\n      },\n      getNodeAttributes: function getNodeAttributes() {\n        return get_node_attributes_default;\n      },\n      getNodeFromTree: function getNodeFromTree() {\n        return get_node_from_tree_default;\n      },\n      getPreloadConfig: function getPreloadConfig() {\n        return _getPreloadConfig;\n      },\n      getRootNode: function getRootNode() {\n        return get_root_node_default;\n      },\n      getRule: function getRule() {\n        return get_rule_default;\n      },\n      getScroll: function getScroll() {\n        return get_scroll_default;\n      },\n      getScrollState: function getScrollState() {\n        return get_scroll_state_default;\n      },\n      getSelector: function getSelector() {\n        return _getSelector;\n      },\n      getSelectorData: function getSelectorData() {\n        return _getSelectorData;\n      },\n      getShadowSelector: function getShadowSelector() {\n        return get_shadow_selector_default;\n      },\n      getStandards: function getStandards() {\n        return _getStandards;\n      },\n      getStyleSheetFactory: function getStyleSheetFactory() {\n        return get_stylesheet_factory_default;\n      },\n      getXpath: function getXpath() {\n        return get_xpath_default;\n      },\n      injectStyle: function injectStyle() {\n        return inject_style_default;\n      },\n      isHidden: function isHidden() {\n        return is_hidden_default;\n      },\n      isHtmlElement: function isHtmlElement() {\n        return is_html_element_default;\n      },\n      isNodeInContext: function isNodeInContext() {\n        return is_node_in_context_default;\n      },\n      isShadowRoot: function isShadowRoot() {\n        return is_shadow_root_default;\n      },\n      isValidLang: function isValidLang() {\n        return valid_langs_default;\n      },\n      isXHTML: function isXHTML() {\n        return is_xhtml_default;\n      },\n      matches: function matches() {\n        return matches_default;\n      },\n      matchesExpression: function matchesExpression() {\n        return _matchesExpression;\n      },\n      matchesSelector: function matchesSelector() {\n        return element_matches_default;\n      },\n      memoize: function memoize() {\n        return memoize_default;\n      },\n      mergeResults: function mergeResults() {\n        return merge_results_default;\n      },\n      nodeSorter: function nodeSorter() {\n        return node_sorter_default;\n      },\n      parseCrossOriginStylesheet: function parseCrossOriginStylesheet() {\n        return parse_crossorigin_stylesheet_default;\n      },\n      parseSameOriginStylesheet: function parseSameOriginStylesheet() {\n        return parse_sameorigin_stylesheet_default;\n      },\n      parseStylesheet: function parseStylesheet() {\n        return parse_stylesheet_default;\n      },\n      performanceTimer: function performanceTimer() {\n        return performance_timer_default;\n      },\n      pollyfillElementsFromPoint: function pollyfillElementsFromPoint() {\n        return _pollyfillElementsFromPoint;\n      },\n      preload: function preload() {\n        return preload_default;\n      },\n      preloadCssom: function preloadCssom() {\n        return preload_cssom_default;\n      },\n      preloadMedia: function preloadMedia() {\n        return preload_media_default;\n      },\n      processMessage: function processMessage() {\n        return process_message_default;\n      },\n      publishMetaData: function publishMetaData() {\n        return publish_metadata_default;\n      },\n      querySelectorAll: function querySelectorAll() {\n        return query_selector_all_default;\n      },\n      querySelectorAllFilter: function querySelectorAllFilter() {\n        return query_selector_all_filter_default;\n      },\n      queue: function queue() {\n        return queue_default;\n      },\n      respondable: function respondable() {\n        return _respondable;\n      },\n      ruleShouldRun: function ruleShouldRun() {\n        return rule_should_run_default;\n      },\n      select: function select() {\n        return select_default;\n      },\n      sendCommandToFrame: function sendCommandToFrame() {\n        return send_command_to_frame_default;\n      },\n      setScrollState: function setScrollState() {\n        return set_scroll_state_default;\n      },\n      shouldPreload: function shouldPreload() {\n        return _shouldPreload;\n      },\n      toArray: function toArray() {\n        return to_array_default;\n      },\n      tokenList: function tokenList() {\n        return token_list_default;\n      },\n      uniqueArray: function uniqueArray() {\n        return unique_array_default;\n      },\n      uuid: function uuid() {\n        return uuid_default;\n      },\n      validInputTypes: function validInputTypes() {\n        return valid_input_type_default;\n      },\n      validLangs: function validLangs() {\n        return _validLangs;\n      }\n    });\n    var errorTypes = Object.freeze([ 'EvalError', 'RangeError', 'ReferenceError', 'SyntaxError', 'TypeError', 'URIError' ]);\n    function stringifyMessage(_ref) {\n      var topic = _ref.topic, channelId = _ref.channelId, message = _ref.message, messageId = _ref.messageId, keepalive = _ref.keepalive;\n      var data2 = {\n        channelId: channelId,\n        topic: topic,\n        messageId: messageId,\n        keepalive: !!keepalive,\n        source: getSource()\n      };\n      if (message instanceof Error) {\n        data2.error = {\n          name: message.name,\n          message: message.message,\n          stack: message.stack\n        };\n      } else {\n        data2.payload = message;\n      }\n      return JSON.stringify(data2);\n    }\n    function parseMessage(dataString) {\n      var data2;\n      try {\n        data2 = JSON.parse(dataString);\n      } catch (e) {\n        return;\n      }\n      if (!isRespondableMessage(data2)) {\n        return;\n      }\n      var _data = data2, topic = _data.topic, channelId = _data.channelId, messageId = _data.messageId, keepalive = _data.keepalive;\n      var message = _typeof(data2.error) === 'object' ? buildErrorObject(data2.error) : data2.payload;\n      return {\n        topic: topic,\n        message: message,\n        messageId: messageId,\n        channelId: channelId,\n        keepalive: !!keepalive\n      };\n    }\n    function isRespondableMessage(postedMessage) {\n      return _typeof(postedMessage) === 'object' && typeof postedMessage.channelId === 'string' && postedMessage.source === getSource();\n    }\n    function buildErrorObject(error) {\n      var msg = error.message || 'Unknown error occurred';\n      var errorName = errorTypes.includes(error.name) ? error.name : 'Error';\n      var ErrConstructor = window[errorName] || Error;\n      if (error.stack) {\n        msg += '\\n' + error.stack.replace(error.message, '');\n      }\n      return new ErrConstructor(msg);\n    }\n    function getSource() {\n      var application = 'axeAPI';\n      var version = '';\n      if (typeof axe !== 'undefined' && axe._audit && axe._audit.application) {\n        application = axe._audit.application;\n      }\n      if (typeof axe !== 'undefined') {\n        version = axe.version;\n      }\n      return application + '.' + version;\n    }\n    function assert(bool, message) {\n      if (!bool) {\n        throw new Error(message);\n      }\n    }\n    var assert_default = assert;\n    function assertIsParentWindow(win) {\n      assetNotGlobalWindow(win);\n      assert_default(window.parent === win, 'Source of the response must be the parent window.');\n    }\n    function assertIsFrameWindow(win) {\n      assetNotGlobalWindow(win);\n      assert_default(win.parent === window, 'Respondable target must be a frame in the current window');\n    }\n    function assetNotGlobalWindow(win) {\n      assert_default(window !== win, 'Messages can not be sent to the same window.');\n    }\n    var channels = {};\n    function storeReplyHandler(channelId, replyHandler) {\n      var sendToParent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n      assert_default(!channels[channelId], 'A replyHandler already exists for this message channel.');\n      channels[channelId] = {\n        replyHandler: replyHandler,\n        sendToParent: sendToParent\n      };\n    }\n    function getReplyHandler(topic) {\n      return channels[topic];\n    }\n    function deleteReplyHandler(channelId) {\n      delete channels[channelId];\n    }\n    var uuid;\n    var _rng;\n    var _crypto = window.crypto || window.msCrypto;\n    if (!_rng && _crypto && _crypto.getRandomValues) {\n      var _rnds8 = new Uint8Array(16);\n      _rng = function whatwgRNG() {\n        _crypto.getRandomValues(_rnds8);\n        return _rnds8;\n      };\n    }\n    try {\n      if (!_rng) {\n        var nodeCrypto = require('crypto');\n        _rng = function _rng() {\n          return nodeCrypto.randomBytes(16);\n        };\n      }\n    } catch (e) {}\n    if (!_rng) {\n      var _rnds = new Array(16);\n      _rng = function _rng() {\n        for (var i = 0, r; i < 16; i++) {\n          if ((i & 3) === 0) {\n            r = Math.random() * 4294967296;\n          }\n          _rnds[i] = r >>> ((i & 3) << 3) & 255;\n        }\n        return _rnds;\n      };\n    }\n    var BufferClass = typeof window.Buffer == 'function' ? window.Buffer : Array;\n    var _byteToHex = [];\n    var _hexToByte = {};\n    for (var i = 0; i < 256; i++) {\n      _byteToHex[i] = (i + 256).toString(16).substr(1);\n      _hexToByte[_byteToHex[i]] = i;\n    }\n    function parse(s, buf, offset) {\n      var i = buf && offset || 0, ii = 0;\n      buf = buf || [];\n      s.toLowerCase().replace(/[0-9a-f]{2}/g, function(oct) {\n        if (ii < 16) {\n          buf[i + ii++] = _hexToByte[oct];\n        }\n      });\n      while (ii < 16) {\n        buf[i + ii++] = 0;\n      }\n      return buf;\n    }\n    function unparse(buf, offset) {\n      var i = offset || 0, bth = _byteToHex;\n      return bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + '-' + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]] + bth[buf[i++]];\n    }\n    var _seedBytes = _rng();\n    var _nodeId = [ _seedBytes[0] | 1, _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5] ];\n    var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 16383;\n    var _lastMSecs = 0;\n    var _lastNSecs = 0;\n    function v1(options, buf, offset) {\n      var i = buf && offset || 0;\n      var b = buf || [];\n      options = options || {};\n      var clockseq = options.clockseq != null ? options.clockseq : _clockseq;\n      var msecs = options.msecs != null ? options.msecs : new Date().getTime();\n      var nsecs = options.nsecs != null ? options.nsecs : _lastNSecs + 1;\n      var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 1e4;\n      if (dt < 0 && options.clockseq == null) {\n        clockseq = clockseq + 1 & 16383;\n      }\n      if ((dt < 0 || msecs > _lastMSecs) && options.nsecs == null) {\n        nsecs = 0;\n      }\n      if (nsecs >= 1e4) {\n        throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n      }\n      _lastMSecs = msecs;\n      _lastNSecs = nsecs;\n      _clockseq = clockseq;\n      msecs += 122192928e5;\n      var tl = ((msecs & 268435455) * 1e4 + nsecs) % 4294967296;\n      b[i++] = tl >>> 24 & 255;\n      b[i++] = tl >>> 16 & 255;\n      b[i++] = tl >>> 8 & 255;\n      b[i++] = tl & 255;\n      var tmh = msecs / 4294967296 * 1e4 & 268435455;\n      b[i++] = tmh >>> 8 & 255;\n      b[i++] = tmh & 255;\n      b[i++] = tmh >>> 24 & 15 | 16;\n      b[i++] = tmh >>> 16 & 255;\n      b[i++] = clockseq >>> 8 | 128;\n      b[i++] = clockseq & 255;\n      var node = options.node || _nodeId;\n      for (var n = 0; n < 6; n++) {\n        b[i + n] = node[n];\n      }\n      return buf ? buf : unparse(b);\n    }\n    function v4(options, buf, offset) {\n      var i = buf && offset || 0;\n      if (typeof options == 'string') {\n        buf = options == 'binary' ? new BufferClass(16) : null;\n        options = null;\n      }\n      options = options || {};\n      var rnds = options.random || (options.rng || _rng)();\n      rnds[6] = rnds[6] & 15 | 64;\n      rnds[8] = rnds[8] & 63 | 128;\n      if (buf) {\n        for (var ii = 0; ii < 16; ii++) {\n          buf[i + ii] = rnds[ii];\n        }\n      }\n      return buf || unparse(rnds);\n    }\n    uuid = v4;\n    uuid.v1 = v1;\n    uuid.v4 = v4;\n    uuid.parse = parse;\n    uuid.unparse = unparse;\n    uuid.BufferClass = BufferClass;\n    axe._uuid = v1();\n    var uuid_default = v4;\n    var messageIds = [];\n    function createMessageId() {\n      var uuid5 = ''.concat(v4(), ':').concat(v4());\n      if (messageIds.includes(uuid5)) {\n        return createMessageId();\n      }\n      messageIds.push(uuid5);\n      return uuid5;\n    }\n    function isNewMessage(uuid5) {\n      if (messageIds.includes(uuid5)) {\n        return false;\n      }\n      messageIds.push(uuid5);\n      return true;\n    }\n    function postMessage(win, data2, sendToParent, replyHandler) {\n      if (typeof replyHandler === 'function') {\n        storeReplyHandler(data2.channelId, replyHandler, sendToParent);\n      }\n      sendToParent ? assertIsParentWindow(win) : assertIsFrameWindow(win);\n      if (data2.message instanceof Error && !sendToParent) {\n        axe.log(data2.message);\n        return false;\n      }\n      var dataString = stringifyMessage(_extends({\n        messageId: createMessageId()\n      }, data2));\n      var allowedOrigins = axe._audit.allowedOrigins;\n      if (!allowedOrigins || !allowedOrigins.length) {\n        return false;\n      }\n      allowedOrigins.forEach(function(origin) {\n        try {\n          win.postMessage(dataString, origin);\n        } catch (err2) {\n          if (err2 instanceof win.DOMException) {\n            throw new Error('allowedOrigins value \"'.concat(origin, '\" is not a valid origin'));\n          }\n          throw err2;\n        }\n      });\n      return true;\n    }\n    function processError(win, error, channelId) {\n      if (!win.parent !== window) {\n        return axe.log(error);\n      }\n      try {\n        postMessage(win, {\n          topic: null,\n          channelId: channelId,\n          message: error,\n          messageId: createMessageId(),\n          keepalive: true\n        }, true);\n      } catch (err2) {\n        return axe.log(err2);\n      }\n    }\n    function createResponder(win, channelId) {\n      var sendToParent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n      return function respond(message, keepalive, replyHandler) {\n        var data2 = {\n          channelId: channelId,\n          message: message,\n          keepalive: keepalive\n        };\n        postMessage(win, data2, sendToParent, replyHandler);\n      };\n    }\n    function originIsAllowed(origin) {\n      var allowedOrigins = axe._audit.allowedOrigins;\n      return allowedOrigins && allowedOrigins.includes('*') || allowedOrigins.includes(origin);\n    }\n    function messageHandler(_ref2, topicHandler) {\n      var origin = _ref2.origin, dataString = _ref2.data, win = _ref2.source;\n      var data2 = parseMessage(dataString) || {};\n      var channelId = data2.channelId, message = data2.message, messageId = data2.messageId;\n      if (!originIsAllowed(origin) || !isNewMessage(messageId)) {\n        return;\n      }\n      if (message instanceof Error && win.parent !== window) {\n        axe.log(message);\n        return false;\n      }\n      try {\n        if (data2.topic) {\n          var responder = createResponder(win, channelId);\n          assertIsParentWindow(win);\n          topicHandler(data2, responder);\n        } else {\n          callReplyHandler(win, data2);\n        }\n      } catch (error) {\n        processError(win, error, channelId);\n      }\n    }\n    function callReplyHandler(win, data2) {\n      var channelId = data2.channelId, message = data2.message, keepalive = data2.keepalive;\n      var _ref3 = getReplyHandler(channelId) || {}, replyHandler = _ref3.replyHandler, sendToParent = _ref3.sendToParent;\n      if (!replyHandler) {\n        return;\n      }\n      sendToParent ? assertIsParentWindow(win) : assertIsFrameWindow(win);\n      var responder = createResponder(win, channelId, sendToParent);\n      if (!keepalive && channelId) {\n        deleteReplyHandler(channelId);\n      }\n      try {\n        replyHandler(message, keepalive, responder);\n      } catch (error) {\n        axe.log(error);\n        responder(error, keepalive);\n      }\n    }\n    var frameMessenger = {\n      open: function open(topicHandler) {\n        if (typeof window.addEventListener !== 'function') {\n          return;\n        }\n        var handler = function handler(messageEvent) {\n          messageHandler(messageEvent, topicHandler);\n        };\n        window.addEventListener('message', handler, false);\n        return function() {\n          window.removeEventListener('message', handler, false);\n        };\n      },\n      post: function post(win, data2, replyHandler) {\n        if (typeof window.addEventListener !== 'function') {\n          return false;\n        }\n        return postMessage(win, data2, false, replyHandler);\n      }\n    };\n    function setDefaultFrameMessenger(respondable5) {\n      respondable5.updateMessenger(frameMessenger);\n    }\n    function aggregate(map, values, initial) {\n      values = values.slice();\n      if (initial) {\n        values.push(initial);\n      }\n      var sorting = values.map(function(val) {\n        return map.indexOf(val);\n      }).sort();\n      return map[sorting.pop()];\n    }\n    var aggregate_default = aggregate;\n    var CANTTELL_PRIO = constants_default.CANTTELL_PRIO, FAIL_PRIO = constants_default.FAIL_PRIO;\n    var checkMap = [];\n    checkMap[constants_default.PASS_PRIO] = true;\n    checkMap[constants_default.CANTTELL_PRIO] = null;\n    checkMap[constants_default.FAIL_PRIO] = false;\n    var checkTypes = [ 'any', 'all', 'none' ];\n    function anyAllNone(obj, functor) {\n      return checkTypes.reduce(function(out, type) {\n        out[type] = (obj[type] || []).map(function(val) {\n          return functor(val, type);\n        });\n        return out;\n      }, {});\n    }\n    function aggregateChecks(nodeResOriginal) {\n      var nodeResult = Object.assign({}, nodeResOriginal);\n      anyAllNone(nodeResult, function(check4, type) {\n        var i = typeof check4.result === 'undefined' ? -1 : checkMap.indexOf(check4.result);\n        check4.priority = i !== -1 ? i : constants_default.CANTTELL_PRIO;\n        if (type === 'none') {\n          if (check4.priority === constants_default.PASS_PRIO) {\n            check4.priority = constants_default.FAIL_PRIO;\n          } else if (check4.priority === constants_default.FAIL_PRIO) {\n            check4.priority = constants_default.PASS_PRIO;\n          }\n        }\n      });\n      var priorities = {\n        all: nodeResult.all.reduce(function(a, b) {\n          return Math.max(a, b.priority);\n        }, 0),\n        none: nodeResult.none.reduce(function(a, b) {\n          return Math.max(a, b.priority);\n        }, 0),\n        any: nodeResult.any.reduce(function(a, b) {\n          return Math.min(a, b.priority);\n        }, 4) % 4\n      };\n      nodeResult.priority = Math.max(priorities.all, priorities.none, priorities.any);\n      var impacts = [];\n      checkTypes.forEach(function(type) {\n        nodeResult[type] = nodeResult[type].filter(function(check4) {\n          return check4.priority === nodeResult.priority && check4.priority === priorities[type];\n        });\n        nodeResult[type].forEach(function(check4) {\n          return impacts.push(check4.impact);\n        });\n      });\n      if ([ CANTTELL_PRIO, FAIL_PRIO ].includes(nodeResult.priority)) {\n        nodeResult.impact = aggregate_default(constants_default.impact, impacts);\n      } else {\n        nodeResult.impact = null;\n      }\n      anyAllNone(nodeResult, function(c) {\n        delete c.result;\n        delete c.priority;\n      });\n      nodeResult.result = constants_default.results[nodeResult.priority];\n      delete nodeResult.priority;\n      return nodeResult;\n    }\n    var aggregate_checks_default = aggregateChecks;\n    function finalizeRuleResult(ruleResult) {\n      var rule3 = axe._audit.rules.find(function(rule4) {\n        return rule4.id === ruleResult.id;\n      });\n      if (rule3 && rule3.impact) {\n        ruleResult.nodes.forEach(function(node) {\n          [ 'any', 'all', 'none' ].forEach(function(checkType) {\n            (node[checkType] || []).forEach(function(checkResult) {\n              checkResult.impact = rule3.impact;\n            });\n          });\n        });\n      }\n      Object.assign(ruleResult, aggregate_node_results_default(ruleResult.nodes));\n      delete ruleResult.nodes;\n      return ruleResult;\n    }\n    var finalize_result_default = finalizeRuleResult;\n    function aggregateNodeResults(nodeResults) {\n      var ruleResult = {};\n      nodeResults = nodeResults.map(function(nodeResult) {\n        if (nodeResult.any && nodeResult.all && nodeResult.none) {\n          return aggregate_checks_default(nodeResult);\n        } else if (Array.isArray(nodeResult.node)) {\n          return finalize_result_default(nodeResult);\n        } else {\n          throw new TypeError('Invalid Result type');\n        }\n      });\n      if (nodeResults && nodeResults.length) {\n        var resultList = nodeResults.map(function(node) {\n          return node.result;\n        });\n        ruleResult.result = aggregate_default(constants_default.results, resultList, ruleResult.result);\n      } else {\n        ruleResult.result = 'inapplicable';\n      }\n      constants_default.resultGroups.forEach(function(group) {\n        return ruleResult[group] = [];\n      });\n      nodeResults.forEach(function(nodeResult) {\n        var groupName = constants_default.resultGroupMap[nodeResult.result];\n        ruleResult[groupName].push(nodeResult);\n      });\n      var impactGroup = constants_default.FAIL_GROUP;\n      if (ruleResult[impactGroup].length === 0) {\n        impactGroup = constants_default.CANTTELL_GROUP;\n      }\n      if (ruleResult[impactGroup].length > 0) {\n        var impactList = ruleResult[impactGroup].map(function(failure) {\n          return failure.impact;\n        });\n        ruleResult.impact = aggregate_default(constants_default.impact, impactList) || null;\n      } else {\n        ruleResult.impact = null;\n      }\n      return ruleResult;\n    }\n    var aggregate_node_results_default = aggregateNodeResults;\n    function copyToGroup(resultObject, subResult, group) {\n      var resultCopy = Object.assign({}, subResult);\n      resultCopy.nodes = (resultCopy[group] || []).concat();\n      constants_default.resultGroups.forEach(function(group2) {\n        delete resultCopy[group2];\n      });\n      resultObject[group].push(resultCopy);\n    }\n    function aggregateResult(results) {\n      var resultObject = {};\n      constants_default.resultGroups.forEach(function(groupName) {\n        return resultObject[groupName] = [];\n      });\n      results.forEach(function(subResult) {\n        if (subResult.error) {\n          copyToGroup(resultObject, subResult, constants_default.CANTTELL_GROUP);\n        } else if (subResult.result === constants_default.NA) {\n          copyToGroup(resultObject, subResult, constants_default.NA_GROUP);\n        } else {\n          constants_default.resultGroups.forEach(function(group) {\n            if (Array.isArray(subResult[group]) && subResult[group].length > 0) {\n              copyToGroup(resultObject, subResult, group);\n            }\n          });\n        }\n      });\n      return resultObject;\n    }\n    var aggregate_result_default = aggregateResult;\n    function areStylesSet(el, styles, stopAt) {\n      var styl = window.getComputedStyle(el, null);\n      if (!styl) {\n        return false;\n      }\n      for (var i = 0; i < styles.length; ++i) {\n        var att = styles[i];\n        if (styl.getPropertyValue(att.property) === att.value) {\n          return true;\n        }\n      }\n      if (!el.parentNode || el.nodeName.toUpperCase() === stopAt.toUpperCase()) {\n        return false;\n      }\n      return areStylesSet(el.parentNode, styles, stopAt);\n    }\n    var are_styles_set_default = areStylesSet;\n    function toArray(thing) {\n      return Array.prototype.slice.call(thing);\n    }\n    var to_array_default = toArray;\n    function escapeSelector(value) {\n      var string = String(value);\n      var length = string.length;\n      var index = -1;\n      var codeUnit;\n      var result = '';\n      var firstCodeUnit = string.charCodeAt(0);\n      while (++index < length) {\n        codeUnit = string.charCodeAt(index);\n        if (codeUnit == 0) {\n          result += '\\ufffd';\n          continue;\n        }\n        if (codeUnit >= 1 && codeUnit <= 31 || codeUnit == 127 || index == 0 && codeUnit >= 48 && codeUnit <= 57 || index == 1 && codeUnit >= 48 && codeUnit <= 57 && firstCodeUnit == 45) {\n          result += '\\\\' + codeUnit.toString(16) + ' ';\n          continue;\n        }\n        if (index == 0 && length == 1 && codeUnit == 45) {\n          result += '\\\\' + string.charAt(index);\n          continue;\n        }\n        if (codeUnit >= 128 || codeUnit == 45 || codeUnit == 95 || codeUnit >= 48 && codeUnit <= 57 || codeUnit >= 65 && codeUnit <= 90 || codeUnit >= 97 && codeUnit <= 122) {\n          result += string.charAt(index);\n          continue;\n        }\n        result += '\\\\' + string.charAt(index);\n      }\n      return result;\n    }\n    var escape_selector_default = escapeSelector;\n    function isMostlyNumbers() {\n      var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n      return str.length !== 0 && (str.match(/[0-9]/g) || '').length >= str.length / 2;\n    }\n    function splitString(str, splitIndex) {\n      return [ str.substring(0, splitIndex), str.substring(splitIndex) ];\n    }\n    function trimRight(str) {\n      return str.replace(/\\s+$/, '');\n    }\n    function uriParser(url) {\n      var original = url;\n      var protocol = '', domain = '', port = '', path = '', query = '', hash = '';\n      if (url.includes('#')) {\n        var _splitString = splitString(url, url.indexOf('#'));\n        var _splitString2 = _slicedToArray(_splitString, 2);\n        url = _splitString2[0];\n        hash = _splitString2[1];\n      }\n      if (url.includes('?')) {\n        var _splitString3 = splitString(url, url.indexOf('?'));\n        var _splitString4 = _slicedToArray(_splitString3, 2);\n        url = _splitString4[0];\n        query = _splitString4[1];\n      }\n      if (url.includes('://')) {\n        var _url$split = url.split('://');\n        var _url$split2 = _slicedToArray(_url$split, 2);\n        protocol = _url$split2[0];\n        url = _url$split2[1];\n        var _splitString5 = splitString(url, url.indexOf('/'));\n        var _splitString6 = _slicedToArray(_splitString5, 2);\n        domain = _splitString6[0];\n        url = _splitString6[1];\n      } else if (url.substr(0, 2) === '//') {\n        url = url.substr(2);\n        var _splitString7 = splitString(url, url.indexOf('/'));\n        var _splitString8 = _slicedToArray(_splitString7, 2);\n        domain = _splitString8[0];\n        url = _splitString8[1];\n      }\n      if (domain.substr(0, 4) === 'www.') {\n        domain = domain.substr(4);\n      }\n      if (domain && domain.includes(':')) {\n        var _splitString9 = splitString(domain, domain.indexOf(':'));\n        var _splitString10 = _slicedToArray(_splitString9, 2);\n        domain = _splitString10[0];\n        port = _splitString10[1];\n      }\n      path = url;\n      return {\n        original: original,\n        protocol: protocol,\n        domain: domain,\n        port: port,\n        path: path,\n        query: query,\n        hash: hash\n      };\n    }\n    function getFriendlyUriEnd() {\n      var uri = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      if (uri.length <= 1 || uri.substr(0, 5) === 'data:' || uri.substr(0, 11) === 'javascript:' || uri.includes('?')) {\n        return;\n      }\n      var currentDomain = options.currentDomain, _options$maxLength = options.maxLength, maxLength = _options$maxLength === void 0 ? 25 : _options$maxLength;\n      var _uriParser = uriParser(uri), path = _uriParser.path, domain = _uriParser.domain, hash = _uriParser.hash;\n      var pathEnd = path.substr(path.substr(0, path.length - 2).lastIndexOf('/') + 1);\n      if (hash) {\n        if (pathEnd && (pathEnd + hash).length <= maxLength) {\n          return trimRight(pathEnd + hash);\n        } else if (pathEnd.length < 2 && hash.length > 2 && hash.length <= maxLength) {\n          return trimRight(hash);\n        } else {\n          return;\n        }\n      } else if (domain && domain.length < maxLength && path.length <= 1) {\n        return trimRight(domain + path);\n      }\n      if (path === '/' + pathEnd && domain && currentDomain && domain !== currentDomain && (domain + path).length <= maxLength) {\n        return trimRight(domain + path);\n      }\n      var lastDotIndex = pathEnd.lastIndexOf('.');\n      if ((lastDotIndex === -1 || lastDotIndex > 1) && (lastDotIndex !== -1 || pathEnd.length > 2) && pathEnd.length <= maxLength && !pathEnd.match(/index(\\.[a-zA-Z]{2-4})?/) && !isMostlyNumbers(pathEnd)) {\n        return trimRight(pathEnd);\n      }\n    }\n    var get_friendly_uri_end_default = getFriendlyUriEnd;\n    function getNodeAttributes(node) {\n      if (node.attributes instanceof window.NamedNodeMap) {\n        return node.attributes;\n      }\n      return node.cloneNode(false).attributes;\n    }\n    var get_node_attributes_default = getNodeAttributes;\n    var matchesSelector = function() {\n      var method;\n      function getMethod(node) {\n        var index, candidate, candidates = [ 'matches', 'matchesSelector', 'mozMatchesSelector', 'webkitMatchesSelector', 'msMatchesSelector' ], length = candidates.length;\n        for (index = 0; index < length; index++) {\n          candidate = candidates[index];\n          if (node[candidate]) {\n            return candidate;\n          }\n        }\n      }\n      return function(node, selector) {\n        if (!method || !node[method]) {\n          method = getMethod(node);\n        }\n        if (node[method]) {\n          return node[method](selector);\n        }\n        return false;\n      };\n    }();\n    var element_matches_default = matchesSelector;\n    function isXHTML(doc) {\n      if (!doc.createElement) {\n        return false;\n      }\n      return doc.createElement('A').localName === 'A';\n    }\n    var is_xhtml_default = isXHTML;\n    function getShadowSelector(generateSelector2, elm) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      if (!elm) {\n        return '';\n      }\n      var doc = elm.getRootNode && elm.getRootNode() || document;\n      if (doc.nodeType !== 11) {\n        return generateSelector2(elm, options, doc);\n      }\n      var stack = [];\n      while (doc.nodeType === 11) {\n        if (!doc.host) {\n          return '';\n        }\n        stack.unshift({\n          elm: elm,\n          doc: doc\n        });\n        elm = doc.host;\n        doc = elm.getRootNode();\n      }\n      stack.unshift({\n        elm: elm,\n        doc: doc\n      });\n      return stack.map(function(_ref4) {\n        var elm2 = _ref4.elm, doc2 = _ref4.doc;\n        return generateSelector2(elm2, options, doc2);\n      });\n    }\n    var get_shadow_selector_default = getShadowSelector;\n    var xhtml;\n    var ignoredAttributes = [ 'class', 'style', 'id', 'selected', 'checked', 'disabled', 'tabindex', 'aria-checked', 'aria-selected', 'aria-invalid', 'aria-activedescendant', 'aria-busy', 'aria-disabled', 'aria-expanded', 'aria-grabbed', 'aria-pressed', 'aria-valuenow' ];\n    var MAXATTRIBUTELENGTH = 31;\n    function getAttributeNameValue(node, at) {\n      var name = at.name;\n      var atnv;\n      if (name.indexOf('href') !== -1 || name.indexOf('src') !== -1) {\n        var friendly = get_friendly_uri_end_default(node.getAttribute(name));\n        if (friendly) {\n          var value = encodeURI(friendly);\n          if (value) {\n            atnv = escape_selector_default(at.name) + '$=\"' + escape_selector_default(value) + '\"';\n          } else {\n            return;\n          }\n        } else {\n          atnv = escape_selector_default(at.name) + '=\"' + escape_selector_default(node.getAttribute(name)) + '\"';\n        }\n      } else {\n        atnv = escape_selector_default(name) + '=\"' + escape_selector_default(at.value) + '\"';\n      }\n      return atnv;\n    }\n    function countSort(a, b) {\n      return a.count < b.count ? -1 : a.count === b.count ? 0 : 1;\n    }\n    function filterAttributes(at) {\n      return !ignoredAttributes.includes(at.name) && at.name.indexOf(':') === -1 && (!at.value || at.value.length < MAXATTRIBUTELENGTH);\n    }\n    function _getSelectorData(domTree) {\n      var data2 = {\n        classes: {},\n        tags: {},\n        attributes: {}\n      };\n      domTree = Array.isArray(domTree) ? domTree : [ domTree ];\n      var currentLevel = domTree.slice();\n      var stack = [];\n      var _loop2 = function _loop2() {\n        var current = currentLevel.pop();\n        var node = current.actualNode;\n        if (!!node.querySelectorAll) {\n          var tag = node.nodeName;\n          if (data2.tags[tag]) {\n            data2.tags[tag]++;\n          } else {\n            data2.tags[tag] = 1;\n          }\n          if (node.classList) {\n            Array.from(node.classList).forEach(function(cl) {\n              var ind = escape_selector_default(cl);\n              if (data2.classes[ind]) {\n                data2.classes[ind]++;\n              } else {\n                data2.classes[ind] = 1;\n              }\n            });\n          }\n          if (node.hasAttributes()) {\n            Array.from(get_node_attributes_default(node)).filter(filterAttributes).forEach(function(at) {\n              var atnv = getAttributeNameValue(node, at);\n              if (atnv) {\n                if (data2.attributes[atnv]) {\n                  data2.attributes[atnv]++;\n                } else {\n                  data2.attributes[atnv] = 1;\n                }\n              }\n            });\n          }\n        }\n        if (current.children.length) {\n          stack.push(currentLevel);\n          currentLevel = current.children.slice();\n        }\n        while (!currentLevel.length && stack.length) {\n          currentLevel = stack.pop();\n        }\n      };\n      while (currentLevel.length) {\n        _loop2();\n      }\n      return data2;\n    }\n    function uncommonClasses(node, selectorData) {\n      var retVal = [];\n      var classData = selectorData.classes;\n      var tagData = selectorData.tags;\n      if (node.classList) {\n        Array.from(node.classList).forEach(function(cl) {\n          var ind = escape_selector_default(cl);\n          if (classData[ind] < tagData[node.nodeName]) {\n            retVal.push({\n              name: ind,\n              count: classData[ind],\n              species: 'class'\n            });\n          }\n        });\n      }\n      return retVal.sort(countSort);\n    }\n    function getNthChildString(elm, selector) {\n      var siblings = elm.parentNode && Array.from(elm.parentNode.children || '') || [];\n      var hasMatchingSiblings = siblings.find(function(sibling) {\n        return sibling !== elm && element_matches_default(sibling, selector);\n      });\n      if (hasMatchingSiblings) {\n        var nthChild = 1 + siblings.indexOf(elm);\n        return ':nth-child(' + nthChild + ')';\n      } else {\n        return '';\n      }\n    }\n    function getElmId(elm) {\n      if (!elm.getAttribute('id')) {\n        return;\n      }\n      var doc = elm.getRootNode && elm.getRootNode() || document;\n      var id = '#' + escape_selector_default(elm.getAttribute('id') || '');\n      if (!id.match(/player_uid_/) && doc.querySelectorAll(id).length === 1) {\n        return id;\n      }\n    }\n    function getBaseSelector(elm) {\n      if (typeof xhtml === 'undefined') {\n        xhtml = is_xhtml_default(document);\n      }\n      return escape_selector_default(xhtml ? elm.localName : elm.nodeName.toLowerCase());\n    }\n    function uncommonAttributes(node, selectorData) {\n      var retVal = [];\n      var attData = selectorData.attributes;\n      var tagData = selectorData.tags;\n      if (node.hasAttributes()) {\n        Array.from(get_node_attributes_default(node)).filter(filterAttributes).forEach(function(at) {\n          var atnv = getAttributeNameValue(node, at);\n          if (atnv && attData[atnv] < tagData[node.nodeName]) {\n            retVal.push({\n              name: atnv,\n              count: attData[atnv],\n              species: 'attribute'\n            });\n          }\n        });\n      }\n      return retVal.sort(countSort);\n    }\n    function getThreeLeastCommonFeatures(elm, selectorData) {\n      var selector = '';\n      var features;\n      var clss = uncommonClasses(elm, selectorData);\n      var atts = uncommonAttributes(elm, selectorData);\n      if (clss.length && clss[0].count === 1) {\n        features = [ clss[0] ];\n      } else if (atts.length && atts[0].count === 1) {\n        features = [ atts[0] ];\n        selector = getBaseSelector(elm);\n      } else {\n        features = clss.concat(atts);\n        features.sort(countSort);\n        features = features.slice(0, 3);\n        if (!features.some(function(feat) {\n          return feat.species === 'class';\n        })) {\n          selector = getBaseSelector(elm);\n        } else {\n          features.sort(function(a, b) {\n            return a.species !== b.species && a.species === 'class' ? -1 : a.species === b.species ? 0 : 1;\n          });\n        }\n      }\n      return selector += features.reduce(function(val, feat) {\n        switch (feat.species) {\n         case 'class':\n          return val + '.' + feat.name;\n\n         case 'attribute':\n          return val + '[' + feat.name + ']';\n        }\n        return val;\n      }, '');\n    }\n    function generateSelector(elm, options, doc) {\n      if (!axe._selectorData) {\n        throw new Error('Expect axe._selectorData to be set up');\n      }\n      var _options$toRoot = options.toRoot, toRoot = _options$toRoot === void 0 ? false : _options$toRoot;\n      var selector;\n      var similar;\n      do {\n        var features = getElmId(elm);\n        if (!features) {\n          features = getThreeLeastCommonFeatures(elm, axe._selectorData);\n          features += getNthChildString(elm, features);\n        }\n        if (selector) {\n          selector = features + ' > ' + selector;\n        } else {\n          selector = features;\n        }\n        if (!similar) {\n          similar = Array.from(doc.querySelectorAll(selector));\n        } else {\n          similar = similar.filter(function(item) {\n            return element_matches_default(item, selector);\n          });\n        }\n        elm = elm.parentElement;\n      } while ((similar.length > 1 || toRoot) && elm && elm.nodeType !== 11);\n      if (similar.length === 1) {\n        return selector;\n      } else if (selector.indexOf(' > ') !== -1) {\n        return ':root' + selector.substring(selector.indexOf(' > '));\n      }\n      return ':root';\n    }\n    function _getSelector(elm, options) {\n      return get_shadow_selector_default(generateSelector, elm, options);\n    }\n    function generateAncestry(node) {\n      var nodeName2 = node.nodeName.toLowerCase();\n      var parent = node.parentElement;\n      if (!parent) {\n        return nodeName2;\n      }\n      var nthChild = '';\n      if (nodeName2 !== 'head' && nodeName2 !== 'body' && parent.children.length > 1) {\n        var index = Array.prototype.indexOf.call(parent.children, node) + 1;\n        nthChild = ':nth-child('.concat(index, ')');\n      }\n      return generateAncestry(parent) + ' > ' + nodeName2 + nthChild;\n    }\n    function _getAncestry(elm, options) {\n      return get_shadow_selector_default(generateAncestry, elm, options);\n    }\n    function getXPathArray(node, path) {\n      var sibling, count;\n      if (!node) {\n        return [];\n      }\n      if (!path && node.nodeType === 9) {\n        path = [ {\n          str: 'html'\n        } ];\n        return path;\n      }\n      path = path || [];\n      if (node.parentNode && node.parentNode !== node) {\n        path = getXPathArray(node.parentNode, path);\n      }\n      if (node.previousSibling) {\n        count = 1;\n        sibling = node.previousSibling;\n        do {\n          if (sibling.nodeType === 1 && sibling.nodeName === node.nodeName) {\n            count++;\n          }\n          sibling = sibling.previousSibling;\n        } while (sibling);\n        if (count === 1) {\n          count = null;\n        }\n      } else if (node.nextSibling) {\n        sibling = node.nextSibling;\n        do {\n          if (sibling.nodeType === 1 && sibling.nodeName === node.nodeName) {\n            count = 1;\n            sibling = null;\n          } else {\n            count = null;\n            sibling = sibling.previousSibling;\n          }\n        } while (sibling);\n      }\n      if (node.nodeType === 1) {\n        var element = {};\n        element.str = node.nodeName.toLowerCase();\n        var id = node.getAttribute && escape_selector_default(node.getAttribute('id'));\n        if (id && node.ownerDocument.querySelectorAll('#' + id).length === 1) {\n          element.id = node.getAttribute('id');\n        }\n        if (count > 1) {\n          element.count = count;\n        }\n        path.push(element);\n      }\n      return path;\n    }\n    function xpathToString(xpathArray) {\n      return xpathArray.reduce(function(str, elm) {\n        if (elm.id) {\n          return '/'.concat(elm.str, '[@id=\\'').concat(elm.id, '\\']');\n        } else {\n          return str + '/'.concat(elm.str) + (elm.count > 0 ? '['.concat(elm.count, ']') : '');\n        }\n      }, '');\n    }\n    function getXpath(node) {\n      var xpathArray = getXPathArray(node);\n      return xpathToString(xpathArray);\n    }\n    var get_xpath_default = getXpath;\n    function truncate(str, maxLength) {\n      maxLength = maxLength || 300;\n      if (str.length > maxLength) {\n        var index = str.indexOf('>');\n        str = str.substring(0, index + 1);\n      }\n      return str;\n    }\n    function getSource2(element) {\n      var source = element.outerHTML;\n      if (!source && typeof XMLSerializer === 'function') {\n        source = new XMLSerializer().serializeToString(element);\n      }\n      return truncate(source || '');\n    }\n    function DqElement(element, options, spec) {\n      this._fromFrame = !!spec;\n      this.spec = spec || {};\n      if (options && options.absolutePaths) {\n        this._options = {\n          toRoot: true\n        };\n      }\n      if (axe._audit.noHtml) {\n        this.source = null;\n      } else if (this.spec.source !== void 0) {\n        this.source = this.spec.source;\n      } else {\n        this.source = getSource2(element);\n      }\n      this._element = element;\n    }\n    DqElement.prototype = {\n      get selector() {\n        return this.spec.selector || [ _getSelector(this.element, this._options) ];\n      },\n      get ancestry() {\n        return this.spec.ancestry || [ _getAncestry(this.element) ];\n      },\n      get xpath() {\n        return this.spec.xpath || [ get_xpath_default(this.element) ];\n      },\n      get element() {\n        return this._element;\n      },\n      get fromFrame() {\n        return this._fromFrame;\n      },\n      toJSON: function toJSON() {\n        return {\n          selector: this.selector,\n          source: this.source,\n          xpath: this.xpath,\n          ancestry: this.ancestry\n        };\n      }\n    };\n    DqElement.fromFrame = function fromFrame(node, options, frame) {\n      var spec = _extends({}, node, {\n        selector: [].concat(_toConsumableArray(frame.selector), _toConsumableArray(node.selector)),\n        ancestry: [].concat(_toConsumableArray(frame.ancestry), _toConsumableArray(node.ancestry)),\n        xpath: [].concat(_toConsumableArray(frame.xpath), _toConsumableArray(node.xpath))\n      });\n      return new DqElement(frame.element, options, spec);\n    };\n    var dq_element_default = DqElement;\n    function checkHelper(checkResult, options, resolve, reject) {\n      return {\n        isAsync: false,\n        async: function async() {\n          this.isAsync = true;\n          return function(result) {\n            if (result instanceof Error === false) {\n              checkResult.result = result;\n              resolve(checkResult);\n            } else {\n              reject(result);\n            }\n          };\n        },\n        data: function data(data2) {\n          checkResult.data = data2;\n        },\n        relatedNodes: function relatedNodes(nodes) {\n          nodes = nodes instanceof window.Node ? [ nodes ] : to_array_default(nodes);\n          checkResult.relatedNodes = nodes.map(function(element) {\n            return new dq_element_default(element, options);\n          });\n        }\n      };\n    }\n    var check_helper_default = checkHelper;\n    function clone(obj) {\n      var index, length, out = obj;\n      if (obj !== null && _typeof(obj) === 'object') {\n        if (Array.isArray(obj)) {\n          out = [];\n          for (index = 0, length = obj.length; index < length; index++) {\n            out[index] = clone(obj[index]);\n          }\n        } else {\n          out = {};\n          for (index in obj) {\n            out[index] = clone(obj[index]);\n          }\n        }\n      }\n      return out;\n    }\n    var clone_default = clone;\n    var css_selector_parser = __toModule(require_lib());\n    var parser = new css_selector_parser.CssSelectorParser();\n    parser.registerSelectorPseudos('not');\n    parser.registerSelectorPseudos('is');\n    parser.registerNestingOperators('>');\n    parser.registerAttrEqualityMods('^', '$', '*', '~');\n    var css_parser_default = parser;\n    function matchesTag(vNode, exp) {\n      return vNode.props.nodeType === 1 && (exp.tag === '*' || vNode.props.nodeName === exp.tag);\n    }\n    function matchesClasses(vNode, exp) {\n      return !exp.classes || exp.classes.every(function(cl) {\n        return vNode.hasClass(cl.value);\n      });\n    }\n    function matchesAttributes(vNode, exp) {\n      return !exp.attributes || exp.attributes.every(function(att) {\n        var nodeAtt = vNode.attr(att.key);\n        return nodeAtt !== null && (!att.value || att.test(nodeAtt));\n      });\n    }\n    function matchesId(vNode, exp) {\n      return !exp.id || vNode.props.id === exp.id;\n    }\n    function matchesPseudos(target, exp) {\n      if (!exp.pseudos || exp.pseudos.every(function(pseudo) {\n        if (pseudo.name === 'not') {\n          return !pseudo.expressions.some(function(expression) {\n            return _matchesExpression(target, expression);\n          });\n        } else if (pseudo.name === 'is') {\n          return pseudo.expressions.some(function(expression) {\n            return _matchesExpression(target, expression);\n          });\n        }\n        throw new Error('the pseudo selector ' + pseudo.name + ' has not yet been implemented');\n      })) {\n        return true;\n      }\n      return false;\n    }\n    function matchExpression(vNode, expression) {\n      return matchesTag(vNode, expression) && matchesClasses(vNode, expression) && matchesAttributes(vNode, expression) && matchesId(vNode, expression) && matchesPseudos(vNode, expression);\n    }\n    var escapeRegExp = function() {\n      var from = /(?=[\\-\\[\\]{}()*+?.\\\\\\^$|,#\\s])/g;\n      var to = '\\\\';\n      return function(string) {\n        return string.replace(from, to);\n      };\n    }();\n    var reUnescape = /\\\\/g;\n    function convertAttributes(atts) {\n      if (!atts) {\n        return;\n      }\n      return atts.map(function(att) {\n        var attributeKey = att.name.replace(reUnescape, '');\n        var attributeValue = (att.value || '').replace(reUnescape, '');\n        var test, regexp;\n        switch (att.operator) {\n         case '^=':\n          regexp = new RegExp('^' + escapeRegExp(attributeValue));\n          break;\n\n         case '$=':\n          regexp = new RegExp(escapeRegExp(attributeValue) + '$');\n          break;\n\n         case '~=':\n          regexp = new RegExp('(^|\\\\s)' + escapeRegExp(attributeValue) + '(\\\\s|$)');\n          break;\n\n         case '|=':\n          regexp = new RegExp('^' + escapeRegExp(attributeValue) + '(-|$)');\n          break;\n\n         case '=':\n          test = function test(value) {\n            return attributeValue === value;\n          };\n          break;\n\n         case '*=':\n          test = function test(value) {\n            return value && value.includes(attributeValue);\n          };\n          break;\n\n         case '!=':\n          test = function test(value) {\n            return attributeValue !== value;\n          };\n          break;\n\n         default:\n          test = function test(value) {\n            return !!value;\n          };\n        }\n        if (attributeValue === '' && /^[*$^]=$/.test(att.operator)) {\n          test = function test() {\n            return false;\n          };\n        }\n        if (!test) {\n          test = function test(value) {\n            return value && regexp.test(value);\n          };\n        }\n        return {\n          key: attributeKey,\n          value: attributeValue,\n          test: test\n        };\n      });\n    }\n    function convertClasses(classes) {\n      if (!classes) {\n        return;\n      }\n      return classes.map(function(className) {\n        className = className.replace(reUnescape, '');\n        return {\n          value: className,\n          regexp: new RegExp('(^|\\\\s)' + escapeRegExp(className) + '(\\\\s|$)')\n        };\n      });\n    }\n    function convertPseudos(pseudos) {\n      if (!pseudos) {\n        return;\n      }\n      return pseudos.map(function(p) {\n        var expressions;\n        if ([ 'is', 'not' ].includes(p.name)) {\n          expressions = p.value;\n          expressions = expressions.selectors ? expressions.selectors : [ expressions ];\n          expressions = convertExpressions(expressions);\n        }\n        return {\n          name: p.name,\n          expressions: expressions,\n          value: p.value\n        };\n      });\n    }\n    function convertExpressions(expressions) {\n      return expressions.map(function(exp) {\n        var newExp = [];\n        var rule3 = exp.rule;\n        while (rule3) {\n          newExp.push({\n            tag: rule3.tagName ? rule3.tagName.toLowerCase() : '*',\n            combinator: rule3.nestingOperator ? rule3.nestingOperator : ' ',\n            id: rule3.id,\n            attributes: convertAttributes(rule3.attrs),\n            classes: convertClasses(rule3.classNames),\n            pseudos: convertPseudos(rule3.pseudos)\n          });\n          rule3 = rule3.rule;\n        }\n        return newExp;\n      });\n    }\n    function _convertSelector(selector) {\n      var expressions = css_parser_default.parse(selector);\n      expressions = expressions.selectors ? expressions.selectors : [ expressions ];\n      return convertExpressions(expressions);\n    }\n    function _matchesExpression(vNode, expressions, matchAnyParent) {\n      var exps = [].concat(expressions);\n      var expression = exps.pop();\n      var matches14 = matchExpression(vNode, expression);\n      while (!matches14 && matchAnyParent && vNode.parent) {\n        vNode = vNode.parent;\n        matches14 = matchExpression(vNode, expression);\n      }\n      if (exps.length) {\n        if ([ ' ', '>' ].includes(expression.combinator) === false) {\n          throw new Error('axe.utils.matchesExpression does not support the combinator: ' + expression.combinator);\n        }\n        matches14 = matches14 && _matchesExpression(vNode.parent, exps, expression.combinator === ' ');\n      }\n      return matches14;\n    }\n    function matches(vNode, selector) {\n      var expressions = _convertSelector(selector);\n      return expressions.some(function(expression) {\n        return _matchesExpression(vNode, expression);\n      });\n    }\n    var matches_default = matches;\n    function closest(vNode, selector) {\n      while (vNode) {\n        if (matches_default(vNode, selector)) {\n          return vNode;\n        }\n        if (typeof vNode.parent === 'undefined') {\n          throw new TypeError('Cannot resolve parent for non-DOM nodes');\n        }\n        vNode = vNode.parent;\n      }\n      return null;\n    }\n    var closest_default = closest;\n    function noop() {}\n    function funcGuard(f) {\n      if (typeof f !== 'function') {\n        throw new TypeError('Queue methods require functions as arguments');\n      }\n    }\n    function queue() {\n      var tasks = [];\n      var started = 0;\n      var remaining = 0;\n      var completeQueue = noop;\n      var complete = false;\n      var err2;\n      var defaultFail = function defaultFail(e) {\n        err2 = e;\n        setTimeout(function() {\n          if (err2 !== void 0 && err2 !== null) {\n            log_default('Uncaught error (of queue)', err2);\n          }\n        }, 1);\n      };\n      var failed = defaultFail;\n      function createResolve(i) {\n        return function(r) {\n          tasks[i] = r;\n          remaining -= 1;\n          if (!remaining && completeQueue !== noop) {\n            complete = true;\n            completeQueue(tasks);\n          }\n        };\n      }\n      function abort(msg) {\n        completeQueue = noop;\n        failed(msg);\n        return tasks;\n      }\n      function pop() {\n        var length = tasks.length;\n        for (;started < length; started++) {\n          var task = tasks[started];\n          try {\n            task.call(null, createResolve(started), abort);\n          } catch (e) {\n            abort(e);\n          }\n        }\n      }\n      var q = {\n        defer: function defer(fn) {\n          if (_typeof(fn) === 'object' && fn.then && fn['catch']) {\n            var defer = fn;\n            fn = function fn(resolve, reject) {\n              defer.then(resolve)['catch'](reject);\n            };\n          }\n          funcGuard(fn);\n          if (err2 !== void 0) {\n            return;\n          } else if (complete) {\n            throw new Error('Queue already completed');\n          }\n          tasks.push(fn);\n          ++remaining;\n          pop();\n          return q;\n        },\n        then: function then(fn) {\n          funcGuard(fn);\n          if (completeQueue !== noop) {\n            throw new Error('queue `then` already set');\n          }\n          if (!err2) {\n            completeQueue = fn;\n            if (!remaining) {\n              complete = true;\n              completeQueue(tasks);\n            }\n          }\n          return q;\n        },\n        catch: function _catch(fn) {\n          funcGuard(fn);\n          if (failed !== defaultFail) {\n            throw new Error('queue `catch` already set');\n          }\n          if (!err2) {\n            failed = fn;\n          } else {\n            fn(err2);\n            err2 = null;\n          }\n          return q;\n        },\n        abort: abort\n      };\n      return q;\n    }\n    var queue_default = queue;\n    var closeHandler;\n    var postMessage2;\n    var topicHandlers = {};\n    function _respondable(win, topic, message, keepalive, replyHandler) {\n      var data2 = {\n        topic: topic,\n        message: message,\n        channelId: ''.concat(v4(), ':').concat(v4()),\n        keepalive: keepalive\n      };\n      return postMessage2(win, data2, replyHandler);\n    }\n    function messageListener(data2, responder) {\n      var topic = data2.topic, message = data2.message, keepalive = data2.keepalive;\n      var topicHandler = topicHandlers[topic];\n      if (!topicHandler) {\n        return;\n      }\n      try {\n        topicHandler(message, keepalive, responder);\n      } catch (error) {\n        axe.log(error);\n        responder(error, keepalive);\n      }\n    }\n    _respondable.updateMessenger = function updateMessenger(_ref5) {\n      var open = _ref5.open, post = _ref5.post;\n      assert_default(typeof open === 'function', 'open callback must be a function');\n      assert_default(typeof post === 'function', 'post callback must be a function');\n      if (closeHandler) {\n        closeHandler();\n      }\n      var close = open(messageListener);\n      if (close) {\n        assert_default(typeof close === 'function', 'open callback must return a cleanup function');\n        closeHandler = close;\n      } else {\n        closeHandler = null;\n      }\n      postMessage2 = post;\n    };\n    _respondable.subscribe = function subscribe(topic, topicHandler) {\n      assert_default(typeof topicHandler === 'function', 'Subscriber callback must be a function');\n      assert_default(!topicHandlers[topic], 'Topic '.concat(topic, ' is already registered to.'));\n      topicHandlers[topic] = topicHandler;\n    };\n    _respondable.isInFrame = function isInFrame() {\n      var win = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;\n      return !!win.frameElement;\n    };\n    setDefaultFrameMessenger(_respondable);\n    function err(message, node) {\n      var selector;\n      if (axe._tree) {\n        selector = _getSelector(node);\n      }\n      return new Error(message + ': ' + (selector || node));\n    }\n    function sendCommandToFrame(node, parameters, resolve, reject) {\n      var win = node.contentWindow;\n      if (!win) {\n        log_default('Frame does not have a content window', node);\n        resolve(null);\n        return;\n      }\n      var timeout = setTimeout(function() {\n        timeout = setTimeout(function() {\n          if (!parameters.debug) {\n            resolve(null);\n          } else {\n            reject(err('No response from frame', node));\n          }\n        }, 0);\n      }, 500);\n      _respondable(win, 'axe.ping', null, void 0, function() {\n        clearTimeout(timeout);\n        var frameWaitTime = parameters.options && parameters.options.frameWaitTime || 6e4;\n        timeout = setTimeout(function collectResultFramesTimeout() {\n          reject(err('Axe in frame timed out', node));\n        }, frameWaitTime);\n        _respondable(win, 'axe.start', parameters, void 0, function(data2) {\n          clearTimeout(timeout);\n          if (data2 instanceof Error === false) {\n            resolve(data2);\n          } else {\n            reject(data2);\n          }\n        });\n      });\n    }\n    var send_command_to_frame_default = sendCommandToFrame;\n    function getAllChecks(object) {\n      var result = [];\n      return result.concat(object.any || []).concat(object.all || []).concat(object.none || []);\n    }\n    var get_all_checks_default = getAllChecks;\n    function nodeSorter(nodeA, nodeB) {\n      nodeA = nodeA.actualNode || nodeA;\n      nodeB = nodeB.actualNode || nodeB;\n      if (nodeA === nodeB) {\n        return 0;\n      }\n      if (nodeA.compareDocumentPosition(nodeB) & 4) {\n        return -1;\n      } else {\n        return 1;\n      }\n    }\n    var node_sorter_default = nodeSorter;\n    function findBy(array, key, value) {\n      if (Array.isArray(array)) {\n        return array.find(function(obj) {\n          return _typeof(obj) === 'object' && obj[key] === value;\n        });\n      }\n    }\n    var find_by_default = findBy;\n    function pushFrame(resultSet, dqFrame, options) {\n      resultSet.forEach(function(res) {\n        res.node = dq_element_default.fromFrame(res.node, options, dqFrame);\n        var checks = get_all_checks_default(res);\n        checks.forEach(function(check4) {\n          check4.relatedNodes = check4.relatedNodes.map(function(node) {\n            return dq_element_default.fromFrame(node, options, dqFrame);\n          });\n        });\n      });\n    }\n    function spliceNodes(target, to) {\n      var firstFromFrame = to[0].node;\n      for (var _i2 = 0; _i2 < target.length; _i2++) {\n        var node = target[_i2].node;\n        var sorterResult = node_sorter_default({\n          actualNode: node.element\n        }, {\n          actualNode: firstFromFrame.element\n        });\n        if (sorterResult > 0 || sorterResult === 0 && firstFromFrame.selector.length < node.selector.length) {\n          target.splice.apply(target, [ _i2, 0 ].concat(to));\n          return;\n        }\n      }\n      target.push.apply(target, to);\n    }\n    function normalizeResult(result) {\n      if (!result || !result.results) {\n        return null;\n      }\n      if (!Array.isArray(result.results)) {\n        return [ result.results ];\n      }\n      if (!result.results.length) {\n        return null;\n      }\n      return result.results;\n    }\n    function mergeResults(frameResults, options) {\n      var mergedResult = [];\n      frameResults.forEach(function(frameResult) {\n        var results = normalizeResult(frameResult);\n        if (!results || !results.length) {\n          return;\n        }\n        var dqFrame;\n        if (frameResult.frameElement) {\n          var spec = {\n            selector: [ frameResult.frame ]\n          };\n          dqFrame = new dq_element_default(frameResult.frameElement, options, spec);\n        }\n        results.forEach(function(ruleResult) {\n          if (ruleResult.nodes && dqFrame) {\n            pushFrame(ruleResult.nodes, dqFrame, options);\n          }\n          var res = find_by_default(mergedResult, 'id', ruleResult.id);\n          if (!res) {\n            mergedResult.push(ruleResult);\n          } else {\n            if (ruleResult.nodes.length) {\n              spliceNodes(res.nodes, ruleResult.nodes);\n            }\n          }\n        });\n      });\n      if (frameResults.length > 1 && window && window.Node) {\n        mergedResult.forEach(function(result) {\n          if (result.nodes) {\n            result.nodes.sort(function(a, b) {\n              var aNode = a.node.element;\n              var bNode = b.node.element;\n              if (aNode !== bNode && (a.node._fromFrame || b.node._fromFrame)) {\n                return node_sorter_default(aNode, bNode);\n              }\n              return 0;\n            });\n          }\n        });\n      }\n      return mergedResult;\n    }\n    var merge_results_default = mergeResults;\n    function collectResultsFromFrames(parentContent, options, command, parameter, resolve, reject) {\n      var q = queue_default();\n      var frames = parentContent.frames;\n      frames.forEach(function(frame) {\n        var tabindex = parseInt(frame.node.getAttribute('tabindex'), 10);\n        var focusable = isNaN(tabindex) || tabindex >= 0;\n        var rect = frame.node.getBoundingClientRect();\n        var width = parseInt(frame.node.getAttribute('width'), 10);\n        var height = parseInt(frame.node.getAttribute('height'), 10);\n        width = isNaN(width) ? rect.width : width;\n        height = isNaN(height) ? rect.height : height;\n        var params = {\n          options: options,\n          command: command,\n          parameter: parameter,\n          context: {\n            initiator: false,\n            focusable: parentContent.focusable === false ? false : focusable,\n            boundingClientRect: {\n              width: width,\n              height: height\n            },\n            page: parentContent.page,\n            include: frame.include || [],\n            exclude: frame.exclude || []\n          }\n        };\n        q.defer(function(res, rej) {\n          var node = frame.node;\n          send_command_to_frame_default(node, params, function(data2) {\n            if (data2) {\n              return res({\n                results: data2,\n                frameElement: node,\n                frame: _getSelector(node)\n              });\n            }\n            res(null);\n          }, rej);\n        });\n      });\n      q.then(function(data2) {\n        resolve(merge_results_default(data2, options));\n      })['catch'](reject);\n    }\n    var collect_results_from_frames_default = collectResultsFromFrames;\n    function contains(vNode, otherVNode) {\n      function containsShadowChild(vNode2, otherVNode2) {\n        if (vNode2.shadowId === otherVNode2.shadowId) {\n          return true;\n        }\n        return !!vNode2.children.find(function(child) {\n          return containsShadowChild(child, otherVNode2);\n        });\n      }\n      if (vNode.shadowId || otherVNode.shadowId) {\n        return containsShadowChild(vNode, otherVNode);\n      }\n      if (vNode.actualNode) {\n        if (typeof vNode.actualNode.contains === 'function') {\n          return vNode.actualNode.contains(otherVNode.actualNode);\n        }\n        return !!(vNode.actualNode.compareDocumentPosition(otherVNode.actualNode) & 16);\n      } else {\n        do {\n          if (otherVNode === vNode) {\n            return true;\n          }\n        } while (otherVNode = otherVNode && otherVNode.parent);\n      }\n      return false;\n    }\n    var contains_default = contains;\n    function deepMerge() {\n      var target = {};\n      for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n        sources[_key] = arguments[_key];\n      }\n      sources.forEach(function(source) {\n        if (!source || _typeof(source) !== 'object' || Array.isArray(source)) {\n          return;\n        }\n        for (var _i3 = 0, _Object$keys = Object.keys(source); _i3 < _Object$keys.length; _i3++) {\n          var key = _Object$keys[_i3];\n          if (!target.hasOwnProperty(key) || _typeof(source[key]) !== 'object' || Array.isArray(target[key])) {\n            target[key] = source[key];\n          } else {\n            target[key] = deepMerge(target[key], source[key]);\n          }\n        }\n      });\n      return target;\n    }\n    var deep_merge_default = deepMerge;\n    function extendMetaData(to, from) {\n      Object.assign(to, from);\n      Object.keys(from).filter(function(prop) {\n        return typeof from[prop] === 'function';\n      }).forEach(function(prop) {\n        to[prop] = null;\n        try {\n          to[prop] = from[prop](to);\n        } catch (e) {}\n      });\n    }\n    var extend_meta_data_default = extendMetaData;\n    var possibleShadowRoots = [ 'article', 'aside', 'blockquote', 'body', 'div', 'footer', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'main', 'nav', 'p', 'section', 'span' ];\n    function isShadowRoot(node) {\n      if (node.shadowRoot) {\n        var nodeName2 = node.nodeName.toLowerCase();\n        if (possibleShadowRoots.includes(nodeName2) || /^[a-z][a-z0-9_.-]*-[a-z0-9_.-]*$/.test(nodeName2)) {\n          return true;\n        }\n      }\n      return false;\n    }\n    var is_shadow_root_default = isShadowRoot;\n    var dom_exports = {};\n    __export(dom_exports, {\n      findElmsInContext: function findElmsInContext() {\n        return find_elms_in_context_default;\n      },\n      findUp: function findUp() {\n        return find_up_default;\n      },\n      findUpVirtual: function findUpVirtual() {\n        return find_up_virtual_default;\n      },\n      getComposedParent: function getComposedParent() {\n        return get_composed_parent_default;\n      },\n      getElementByReference: function getElementByReference() {\n        return get_element_by_reference_default;\n      },\n      getElementCoordinates: function getElementCoordinates() {\n        return get_element_coordinates_default;\n      },\n      getElementStack: function getElementStack() {\n        return get_element_stack_default;\n      },\n      getRootNode: function getRootNode() {\n        return get_root_node_default2;\n      },\n      getScrollOffset: function getScrollOffset() {\n        return get_scroll_offset_default;\n      },\n      getTabbableElements: function getTabbableElements() {\n        return get_tabbable_elements_default;\n      },\n      getTextElementStack: function getTextElementStack() {\n        return get_text_element_stack_default;\n      },\n      getViewportSize: function getViewportSize() {\n        return get_viewport_size_default;\n      },\n      hasContent: function hasContent() {\n        return has_content_default;\n      },\n      hasContentVirtual: function hasContentVirtual() {\n        return has_content_virtual_default;\n      },\n      idrefs: function idrefs() {\n        return idrefs_default;\n      },\n      insertedIntoFocusOrder: function insertedIntoFocusOrder() {\n        return inserted_into_focus_order_default;\n      },\n      isFocusable: function isFocusable() {\n        return is_focusable_default;\n      },\n      isHTML5: function isHTML5() {\n        return is_html5_default;\n      },\n      isHiddenWithCSS: function isHiddenWithCSS() {\n        return is_hidden_with_css_default;\n      },\n      isInTextBlock: function isInTextBlock() {\n        return is_in_text_block_default;\n      },\n      isModalOpen: function isModalOpen() {\n        return is_modal_open_default;\n      },\n      isNativelyFocusable: function isNativelyFocusable() {\n        return is_natively_focusable_default;\n      },\n      isNode: function isNode() {\n        return is_node_default;\n      },\n      isOffscreen: function isOffscreen() {\n        return is_offscreen_default;\n      },\n      isOpaque: function isOpaque() {\n        return is_opaque_default;\n      },\n      isSkipLink: function isSkipLink() {\n        return is_skip_link_default;\n      },\n      isVisible: function isVisible() {\n        return is_visible_default;\n      },\n      isVisualContent: function isVisualContent() {\n        return is_visual_content_default;\n      },\n      reduceToElementsBelowFloating: function reduceToElementsBelowFloating() {\n        return reduce_to_elements_below_floating_default;\n      },\n      shadowElementsFromPoint: function shadowElementsFromPoint() {\n        return shadow_elements_from_point_default;\n      },\n      urlPropsFromAttribute: function urlPropsFromAttribute() {\n        return url_props_from_attribute_default;\n      },\n      visuallyContains: function visuallyContains() {\n        return visually_contains_default;\n      },\n      visuallyOverlaps: function visuallyOverlaps() {\n        return visually_overlaps_default;\n      }\n    });\n    function getRootNode(node) {\n      var doc = node.getRootNode && node.getRootNode() || document;\n      if (doc === node) {\n        doc = document;\n      }\n      return doc;\n    }\n    var get_root_node_default = getRootNode;\n    var get_root_node_default2 = get_root_node_default;\n    function findElmsInContext(_ref6) {\n      var context3 = _ref6.context, value = _ref6.value, attr = _ref6.attr, _ref6$elm = _ref6.elm, elm = _ref6$elm === void 0 ? '' : _ref6$elm;\n      var root;\n      var escapedValue = escape_selector_default(value);\n      if (context3.nodeType === 9 || context3.nodeType === 11) {\n        root = context3;\n      } else {\n        root = get_root_node_default2(context3);\n      }\n      return Array.from(root.querySelectorAll(elm + '[' + attr + '=' + escapedValue + ']'));\n    }\n    var find_elms_in_context_default = findElmsInContext;\n    function findUpVirtual(element, target) {\n      var parent;\n      parent = element.actualNode;\n      if (!element.shadowId && typeof element.actualNode.closest === 'function') {\n        var match = element.actualNode.closest(target);\n        if (match) {\n          return match;\n        }\n        return null;\n      }\n      do {\n        parent = parent.assignedSlot ? parent.assignedSlot : parent.parentNode;\n        if (parent && parent.nodeType === 11) {\n          parent = parent.host;\n        }\n      } while (parent && !element_matches_default(parent, target) && parent !== document.documentElement);\n      if (!parent) {\n        return null;\n      }\n      if (!element_matches_default(parent, target)) {\n        return null;\n      }\n      return parent;\n    }\n    var find_up_virtual_default = findUpVirtual;\n    function findUp(element, target) {\n      return find_up_virtual_default(get_node_from_tree_default(element), target);\n    }\n    var find_up_default = findUp;\n    function getComposedParent(element) {\n      if (element.assignedSlot) {\n        return getComposedParent(element.assignedSlot);\n      } else if (element.parentNode) {\n        var parentNode = element.parentNode;\n        if (parentNode.nodeType === 1) {\n          return parentNode;\n        } else if (parentNode.host) {\n          return parentNode.host;\n        }\n      }\n      return null;\n    }\n    var get_composed_parent_default = getComposedParent;\n    function getElementByReference(node, attr) {\n      var fragment = node.getAttribute(attr);\n      if (!fragment) {\n        return null;\n      }\n      if (fragment.charAt(0) === '#') {\n        fragment = decodeURIComponent(fragment.substring(1));\n      } else if (fragment.substr(0, 2) === '/#') {\n        fragment = decodeURIComponent(fragment.substring(2));\n      }\n      var candidate = document.getElementById(fragment);\n      if (candidate) {\n        return candidate;\n      }\n      candidate = document.getElementsByName(fragment);\n      if (candidate.length) {\n        return candidate[0];\n      }\n      return null;\n    }\n    var get_element_by_reference_default = getElementByReference;\n    function getScrollOffset(element) {\n      if (!element.nodeType && element.document) {\n        element = element.document;\n      }\n      if (element.nodeType === 9) {\n        var docElement = element.documentElement, body = element.body;\n        return {\n          left: docElement && docElement.scrollLeft || body && body.scrollLeft || 0,\n          top: docElement && docElement.scrollTop || body && body.scrollTop || 0\n        };\n      }\n      return {\n        left: element.scrollLeft,\n        top: element.scrollTop\n      };\n    }\n    var get_scroll_offset_default = getScrollOffset;\n    function getElementCoordinates(element) {\n      var scrollOffset = get_scroll_offset_default(document), xOffset = scrollOffset.left, yOffset = scrollOffset.top, coords = element.getBoundingClientRect();\n      return {\n        top: coords.top + yOffset,\n        right: coords.right + xOffset,\n        bottom: coords.bottom + yOffset,\n        left: coords.left + xOffset,\n        width: coords.right - coords.left,\n        height: coords.bottom - coords.top\n      };\n    }\n    var get_element_coordinates_default = getElementCoordinates;\n    function getViewportSize(win) {\n      var doc = win.document;\n      var docElement = doc.documentElement;\n      if (win.innerWidth) {\n        return {\n          width: win.innerWidth,\n          height: win.innerHeight\n        };\n      }\n      if (docElement) {\n        return {\n          width: docElement.clientWidth,\n          height: docElement.clientHeight\n        };\n      }\n      var body = doc.body;\n      return {\n        width: body.clientWidth,\n        height: body.clientHeight\n      };\n    }\n    var get_viewport_size_default = getViewportSize;\n    function noParentScrolled(element, offset) {\n      element = get_composed_parent_default(element);\n      while (element && element.nodeName.toLowerCase() !== 'html') {\n        if (element.scrollTop) {\n          offset += element.scrollTop;\n          if (offset >= 0) {\n            return false;\n          }\n        }\n        element = get_composed_parent_default(element);\n      }\n      return true;\n    }\n    function isOffscreen(element) {\n      var leftBoundary;\n      var docElement = document.documentElement;\n      var styl = window.getComputedStyle(element);\n      var dir = window.getComputedStyle(document.body || docElement).getPropertyValue('direction');\n      var coords = get_element_coordinates_default(element);\n      if (coords.bottom < 0 && (noParentScrolled(element, coords.bottom) || styl.position === 'absolute')) {\n        return true;\n      }\n      if (coords.left === 0 && coords.right === 0) {\n        return false;\n      }\n      if (dir === 'ltr') {\n        if (coords.right <= 0) {\n          return true;\n        }\n      } else {\n        leftBoundary = Math.max(docElement.scrollWidth, get_viewport_size_default(window).width);\n        if (coords.left >= leftBoundary) {\n          return true;\n        }\n      }\n      return false;\n    }\n    var is_offscreen_default = isOffscreen;\n    var clipRegex = /rect\\s*\\(([0-9]+)px,?\\s*([0-9]+)px,?\\s*([0-9]+)px,?\\s*([0-9]+)px\\s*\\)/;\n    var clipPathRegex = /(\\w+)\\((\\d+)/;\n    function isClipped(style) {\n      var matchesClip = style.getPropertyValue('clip').match(clipRegex);\n      var matchesClipPath = style.getPropertyValue('clip-path').match(clipPathRegex);\n      if (matchesClip && matchesClip.length === 5) {\n        return matchesClip[3] - matchesClip[1] <= 0 && matchesClip[2] - matchesClip[4] <= 0;\n      }\n      if (matchesClipPath) {\n        var type = matchesClipPath[1];\n        var value = parseInt(matchesClipPath[2], 10);\n        switch (type) {\n         case 'inset':\n          return value >= 50;\n\n         case 'circle':\n          return value === 0;\n\n         default:\n        }\n      }\n      return false;\n    }\n    function isAreaVisible(el, screenReader, recursed) {\n      var mapEl = find_up_default(el, 'map');\n      if (!mapEl) {\n        return false;\n      }\n      var mapElName = mapEl.getAttribute('name');\n      if (!mapElName) {\n        return false;\n      }\n      var mapElRootNode = get_root_node_default2(el);\n      if (!mapElRootNode || mapElRootNode.nodeType !== 9) {\n        return false;\n      }\n      var refs = query_selector_all_default(axe._tree, 'img[usemap=\"#'.concat(escape_selector_default(mapElName), '\"]'));\n      if (!refs || !refs.length) {\n        return false;\n      }\n      return refs.some(function(_ref7) {\n        var actualNode = _ref7.actualNode;\n        return isVisible(actualNode, screenReader, recursed);\n      });\n    }\n    function isVisible(el, screenReader, recursed) {\n      if (!el) {\n        throw new TypeError('Cannot determine if element is visible for non-DOM nodes');\n      }\n      var vNode = get_node_from_tree_default(el);\n      var cacheName = '_isVisible' + (screenReader ? 'ScreenReader' : '');\n      if (el.nodeType === 9) {\n        return true;\n      }\n      if (el.nodeType === 11) {\n        el = el.host;\n      }\n      if (vNode && typeof vNode[cacheName] !== 'undefined') {\n        return vNode[cacheName];\n      }\n      var style = window.getComputedStyle(el, null);\n      if (style === null) {\n        return false;\n      }\n      var nodeName2 = el.nodeName.toUpperCase();\n      if (nodeName2 === 'AREA') {\n        return isAreaVisible(el, screenReader, recursed);\n      }\n      if (style.getPropertyValue('display') === 'none' || [ 'STYLE', 'SCRIPT', 'NOSCRIPT', 'TEMPLATE' ].includes(nodeName2)) {\n        return false;\n      }\n      if (screenReader && el.getAttribute('aria-hidden') === 'true') {\n        return false;\n      }\n      if (!screenReader && (isClipped(style) || style.getPropertyValue('opacity') === '0' || get_scroll_default(el) && parseInt(style.getPropertyValue('height')) === 0)) {\n        return false;\n      }\n      if (!recursed && (style.getPropertyValue('visibility') === 'hidden' || !screenReader && is_offscreen_default(el))) {\n        return false;\n      }\n      var parent = el.assignedSlot ? el.assignedSlot : el.parentNode;\n      var visible4 = false;\n      if (parent) {\n        visible4 = isVisible(parent, screenReader, true);\n      }\n      if (vNode) {\n        vNode[cacheName] = visible4;\n      }\n      return visible4;\n    }\n    var is_visible_default = isVisible;\n    var gridSize = 200;\n    function isStackingContext(vNode, parentVNode) {\n      var position = vNode.getComputedStylePropertyValue('position');\n      var zIndex = vNode.getComputedStylePropertyValue('z-index');\n      if (position === 'fixed' || position === 'sticky') {\n        return true;\n      }\n      if (zIndex !== 'auto' && position !== 'static') {\n        return true;\n      }\n      if (vNode.getComputedStylePropertyValue('opacity') !== '1') {\n        return true;\n      }\n      var transform = vNode.getComputedStylePropertyValue('-webkit-transform') || vNode.getComputedStylePropertyValue('-ms-transform') || vNode.getComputedStylePropertyValue('transform') || 'none';\n      if (transform !== 'none') {\n        return true;\n      }\n      var mixBlendMode = vNode.getComputedStylePropertyValue('mix-blend-mode');\n      if (mixBlendMode && mixBlendMode !== 'normal') {\n        return true;\n      }\n      var filter = vNode.getComputedStylePropertyValue('filter');\n      if (filter && filter !== 'none') {\n        return true;\n      }\n      var perspective = vNode.getComputedStylePropertyValue('perspective');\n      if (perspective && perspective !== 'none') {\n        return true;\n      }\n      var clipPath = vNode.getComputedStylePropertyValue('clip-path');\n      if (clipPath && clipPath !== 'none') {\n        return true;\n      }\n      var mask = vNode.getComputedStylePropertyValue('-webkit-mask') || vNode.getComputedStylePropertyValue('mask') || 'none';\n      if (mask !== 'none') {\n        return true;\n      }\n      var maskImage = vNode.getComputedStylePropertyValue('-webkit-mask-image') || vNode.getComputedStylePropertyValue('mask-image') || 'none';\n      if (maskImage !== 'none') {\n        return true;\n      }\n      var maskBorder = vNode.getComputedStylePropertyValue('-webkit-mask-border') || vNode.getComputedStylePropertyValue('mask-border') || 'none';\n      if (maskBorder !== 'none') {\n        return true;\n      }\n      if (vNode.getComputedStylePropertyValue('isolation') === 'isolate') {\n        return true;\n      }\n      var willChange = vNode.getComputedStylePropertyValue('will-change');\n      if (willChange === 'transform' || willChange === 'opacity') {\n        return true;\n      }\n      if (vNode.getComputedStylePropertyValue('-webkit-overflow-scrolling') === 'touch') {\n        return true;\n      }\n      var contain = vNode.getComputedStylePropertyValue('contain');\n      if ([ 'layout', 'paint', 'strict', 'content' ].includes(contain)) {\n        return true;\n      }\n      if (zIndex !== 'auto' && parentVNode) {\n        var parentDsiplay = parentVNode.getComputedStylePropertyValue('display');\n        if ([ 'flex', 'inline-flex', 'inline flex', 'grid', 'inline-grid', 'inline grid' ].includes(parentDsiplay)) {\n          return true;\n        }\n      }\n      return false;\n    }\n    function isFloated(vNode) {\n      if (!vNode) {\n        return false;\n      }\n      if (vNode._isFloated !== void 0) {\n        return vNode._isFloated;\n      }\n      var floatStyle = vNode.getComputedStylePropertyValue('float');\n      if (floatStyle !== 'none') {\n        vNode._isFloated = true;\n        return true;\n      }\n      var floated = isFloated(vNode.parent);\n      vNode._isFloated = floated;\n      return floated;\n    }\n    function getPositionOrder(vNode) {\n      if (vNode.getComputedStylePropertyValue('position') === 'static') {\n        if (vNode.getComputedStylePropertyValue('display').indexOf('inline') !== -1) {\n          return 2;\n        }\n        if (isFloated(vNode)) {\n          return 1;\n        }\n        return 0;\n      }\n      return 3;\n    }\n    function visuallySort(a, b) {\n      for (var _i4 = 0; _i4 < a._stackingOrder.length; _i4++) {\n        if (typeof b._stackingOrder[_i4] === 'undefined') {\n          return -1;\n        }\n        if (b._stackingOrder[_i4] > a._stackingOrder[_i4]) {\n          return 1;\n        }\n        if (b._stackingOrder[_i4] < a._stackingOrder[_i4]) {\n          return -1;\n        }\n      }\n      var aNode = a.actualNode;\n      var bNode = b.actualNode;\n      if (aNode.getRootNode && aNode.getRootNode() !== bNode.getRootNode()) {\n        var boundaries = [];\n        while (aNode) {\n          boundaries.push({\n            root: aNode.getRootNode(),\n            node: aNode\n          });\n          aNode = aNode.getRootNode().host;\n        }\n        while (bNode && !boundaries.find(function(boundary) {\n          return boundary.root === bNode.getRootNode();\n        })) {\n          bNode = bNode.getRootNode().host;\n        }\n        aNode = boundaries.find(function(boundary) {\n          return boundary.root === bNode.getRootNode();\n        }).node;\n        if (aNode === bNode) {\n          return a.actualNode.getRootNode() !== aNode.getRootNode() ? -1 : 1;\n        }\n      }\n      var _window$Node = window.Node, DOCUMENT_POSITION_FOLLOWING = _window$Node.DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_CONTAINS = _window$Node.DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_CONTAINED_BY = _window$Node.DOCUMENT_POSITION_CONTAINED_BY;\n      var docPosition = aNode.compareDocumentPosition(bNode);\n      var DOMOrder = docPosition & DOCUMENT_POSITION_FOLLOWING ? 1 : -1;\n      var isDescendant = docPosition & DOCUMENT_POSITION_CONTAINS || docPosition & DOCUMENT_POSITION_CONTAINED_BY;\n      var aPosition = getPositionOrder(a);\n      var bPosition = getPositionOrder(b);\n      if (aPosition === bPosition || isDescendant) {\n        return DOMOrder;\n      }\n      return bPosition - aPosition;\n    }\n    function getStackingOrder(vNode, parentVNode) {\n      var stackingOrder = parentVNode._stackingOrder.slice();\n      var zIndex = vNode.getComputedStylePropertyValue('z-index');\n      if (zIndex !== 'auto') {\n        stackingOrder[stackingOrder.length - 1] = parseInt(zIndex);\n      }\n      if (isStackingContext(vNode, parentVNode)) {\n        stackingOrder.push(0);\n      }\n      return stackingOrder;\n    }\n    function findScrollRegionParent(vNode, parentVNode) {\n      var scrollRegionParent = null;\n      var checkedNodes = [ vNode ];\n      while (parentVNode) {\n        if (parentVNode._scrollRegionParent) {\n          scrollRegionParent = parentVNode._scrollRegionParent;\n          break;\n        }\n        if (get_scroll_default(parentVNode.actualNode)) {\n          scrollRegionParent = parentVNode;\n          break;\n        }\n        checkedNodes.push(parentVNode);\n        parentVNode = get_node_from_tree_default(parentVNode.actualNode.parentElement || parentVNode.actualNode.parentNode);\n      }\n      checkedNodes.forEach(function(vNode2) {\n        return vNode2._scrollRegionParent = scrollRegionParent;\n      });\n      return scrollRegionParent;\n    }\n    function addNodeToGrid(grid, vNode) {\n      vNode._grid = grid;\n      vNode.clientRects.forEach(function(rect) {\n        var x = rect.left;\n        var y = rect.top;\n        var startRow = y / gridSize | 0;\n        var startCol = x / gridSize | 0;\n        var endRow = (y + rect.height) / gridSize | 0;\n        var endCol = (x + rect.width) / gridSize | 0;\n        for (var row = startRow; row <= endRow; row++) {\n          grid.cells[row] = grid.cells[row] || [];\n          for (var col = startCol; col <= endCol; col++) {\n            grid.cells[row][col] = grid.cells[row][col] || [];\n            if (!grid.cells[row][col].includes(vNode)) {\n              grid.cells[row][col].push(vNode);\n            }\n          }\n        }\n      });\n    }\n    function createGrid() {\n      var root = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.body;\n      var rootGrid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        container: null,\n        cells: []\n      };\n      var parentVNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n      if (!parentVNode) {\n        var vNode = get_node_from_tree_default(document.documentElement);\n        if (!vNode) {\n          vNode = new virtual_node_default(document.documentElement);\n        }\n        vNode._stackingOrder = [ 0 ];\n        addNodeToGrid(rootGrid, vNode);\n        if (get_scroll_default(vNode.actualNode)) {\n          var subGrid = {\n            container: vNode,\n            cells: []\n          };\n          vNode._subGrid = subGrid;\n        }\n      }\n      var treeWalker = document.createTreeWalker(root, window.NodeFilter.SHOW_ELEMENT, null, false);\n      var node = parentVNode ? treeWalker.nextNode() : treeWalker.currentNode;\n      while (node) {\n        var _vNode = get_node_from_tree_default(node);\n        if (node.parentElement) {\n          parentVNode = get_node_from_tree_default(node.parentElement);\n        } else if (node.parentNode && get_node_from_tree_default(node.parentNode)) {\n          parentVNode = get_node_from_tree_default(node.parentNode);\n        }\n        if (!_vNode) {\n          _vNode = new axe.VirtualNode(node, parentVNode);\n        }\n        _vNode._stackingOrder = getStackingOrder(_vNode, parentVNode);\n        var scrollRegionParent = findScrollRegionParent(_vNode, parentVNode);\n        var grid = scrollRegionParent ? scrollRegionParent._subGrid : rootGrid;\n        if (get_scroll_default(_vNode.actualNode)) {\n          var _subGrid = {\n            container: _vNode,\n            cells: []\n          };\n          _vNode._subGrid = _subGrid;\n        }\n        var rect = _vNode.boundingClientRect;\n        if (rect.width !== 0 && rect.height !== 0 && is_visible_default(node)) {\n          addNodeToGrid(grid, _vNode);\n        }\n        if (is_shadow_root_default(node)) {\n          createGrid(node.shadowRoot, grid, _vNode);\n        }\n        node = treeWalker.nextNode();\n      }\n    }\n    function getRectStack(grid, rect) {\n      var recursed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n      var x = rect.left + rect.width / 2;\n      var y = rect.top + rect.height / 2;\n      var row = y / gridSize | 0;\n      var col = x / gridSize | 0;\n      var stack = grid.cells[row][col].filter(function(gridCellNode) {\n        return gridCellNode.clientRects.find(function(clientRect) {\n          var rectX = clientRect.left;\n          var rectY = clientRect.top;\n          return x <= rectX + clientRect.width && x >= rectX && y <= rectY + clientRect.height && y >= rectY;\n        });\n      });\n      var gridContainer = grid.container;\n      if (gridContainer) {\n        stack = getRectStack(gridContainer._grid, gridContainer.boundingClientRect, true).concat(stack);\n      }\n      if (!recursed) {\n        stack = stack.sort(visuallySort).map(function(vNode) {\n          return vNode.actualNode;\n        }).concat(document.documentElement).filter(function(node, index, array) {\n          return array.indexOf(node) === index;\n        });\n      }\n      return stack;\n    }\n    var _cache = {};\n    var cache = {\n      set: function set(key, value) {\n        _cache[key] = value;\n      },\n      get: function get(key) {\n        return _cache[key];\n      },\n      clear: function clear() {\n        _cache = {};\n      }\n    };\n    var cache_default = cache;\n    function getElementStack(node) {\n      if (!cache_default.get('gridCreated')) {\n        createGrid();\n        cache_default.set('gridCreated', true);\n      }\n      var vNode = get_node_from_tree_default(node);\n      var grid = vNode._grid;\n      if (!grid) {\n        return [];\n      }\n      return getRectStack(grid, vNode.boundingClientRect);\n    }\n    var get_element_stack_default = getElementStack;\n    function getTabbableElements(virtualNode) {\n      var nodeAndDescendents = query_selector_all_default(virtualNode, '*');\n      var tabbableElements = nodeAndDescendents.filter(function(vNode) {\n        var isFocusable2 = vNode.isFocusable;\n        var tabIndex = vNode.actualNode.getAttribute('tabindex');\n        tabIndex = tabIndex && !isNaN(parseInt(tabIndex, 10)) ? parseInt(tabIndex) : null;\n        return tabIndex ? isFocusable2 && tabIndex >= 0 : isFocusable2;\n      });\n      return tabbableElements;\n    }\n    var get_tabbable_elements_default = getTabbableElements;\n    function sanitize(str) {\n      if (!str) {\n        return '';\n      }\n      return str.replace(/\\r\\n/g, '\\n').replace(/\\u00A0/g, ' ').replace(/[\\s]{2,}/g, ' ').trim();\n    }\n    var sanitize_default = sanitize;\n    function getTextElementStack(node) {\n      if (!cache_default.get('gridCreated')) {\n        createGrid();\n        cache_default.set('gridCreated', true);\n      }\n      var vNode = get_node_from_tree_default(node);\n      var grid = vNode._grid;\n      if (!grid) {\n        return [];\n      }\n      var nodeRect = vNode.boundingClientRect;\n      var clientRects = [];\n      Array.from(node.childNodes).forEach(function(elm) {\n        if (elm.nodeType === 3 && sanitize_default(elm.textContent) !== '') {\n          var range = document.createRange();\n          range.selectNodeContents(elm);\n          var rects = range.getClientRects();\n          var outsideRectBounds = Array.from(rects).some(function(rect) {\n            var horizontalMidpoint = rect.left + rect.width / 2;\n            var verticalMidpoint = rect.top + rect.height / 2;\n            return horizontalMidpoint < nodeRect.left || horizontalMidpoint > nodeRect.right || verticalMidpoint < nodeRect.top || verticalMidpoint > nodeRect.bottom;\n          });\n          if (outsideRectBounds) {\n            return;\n          }\n          for (var _i5 = 0; _i5 < rects.length; _i5++) {\n            var rect = rects[_i5];\n            if (rect.width >= 1 && rect.height >= 1) {\n              clientRects.push(rect);\n            }\n          }\n        }\n      });\n      if (!clientRects.length) {\n        return [ get_element_stack_default(node) ];\n      }\n      return clientRects.map(function(rect) {\n        return getRectStack(grid, rect);\n      });\n    }\n    var get_text_element_stack_default = getTextElementStack;\n    var visualRoles = [ 'checkbox', 'img', 'radio', 'range', 'slider', 'spinbutton', 'textbox' ];\n    function isVisualContent(element) {\n      var role = element.getAttribute('role');\n      if (role) {\n        return visualRoles.indexOf(role) !== -1;\n      }\n      switch (element.nodeName.toUpperCase()) {\n       case 'IMG':\n       case 'IFRAME':\n       case 'OBJECT':\n       case 'VIDEO':\n       case 'AUDIO':\n       case 'CANVAS':\n       case 'SVG':\n       case 'MATH':\n       case 'BUTTON':\n       case 'SELECT':\n       case 'TEXTAREA':\n       case 'KEYGEN':\n       case 'PROGRESS':\n       case 'METER':\n        return true;\n\n       case 'INPUT':\n        return element.type !== 'hidden';\n\n       default:\n        return false;\n      }\n    }\n    var is_visual_content_default = isVisualContent;\n    function idrefs(node, attr) {\n      node = node.actualNode || node;\n      try {\n        var doc = get_root_node_default2(node);\n        var result = [];\n        var attrValue = node.getAttribute(attr);\n        if (attrValue) {\n          attrValue = token_list_default(attrValue);\n          for (var index = 0; index < attrValue.length; index++) {\n            result.push(doc.getElementById(attrValue[index]));\n          }\n        }\n        return result;\n      } catch (e) {\n        throw new TypeError('Cannot resolve id references for non-DOM nodes');\n      }\n    }\n    var idrefs_default = idrefs;\n    function visibleVirtual(element, screenReader, noRecursing) {\n      var vNode = element instanceof abstract_virtual_node_default ? element : get_node_from_tree_default(element);\n      var visible4 = !element.actualNode || element.actualNode && is_visible_default(element.actualNode, screenReader);\n      var result = vNode.children.map(function(child) {\n        var _child$props = child.props, nodeType = _child$props.nodeType, nodeValue = _child$props.nodeValue;\n        if (nodeType === 3) {\n          if (nodeValue && visible4) {\n            return nodeValue;\n          }\n        } else if (!noRecursing) {\n          return visibleVirtual(child, screenReader);\n        }\n      }).join('');\n      return sanitize_default(result);\n    }\n    var visible_virtual_default = visibleVirtual;\n    function labelVirtual(virtualNode) {\n      var ref, candidate;\n      if (virtualNode.attr('aria-labelledby')) {\n        ref = idrefs_default(virtualNode.actualNode, 'aria-labelledby');\n        candidate = ref.map(function(thing) {\n          var vNode = get_node_from_tree_default(thing);\n          return vNode ? visible_virtual_default(vNode, true) : '';\n        }).join(' ').trim();\n        if (candidate) {\n          return candidate;\n        }\n      }\n      candidate = virtualNode.attr('aria-label');\n      if (candidate) {\n        candidate = sanitize_default(candidate);\n        if (candidate) {\n          return candidate;\n        }\n      }\n      return null;\n    }\n    var label_virtual_default = labelVirtual;\n    var hiddenTextElms = [ 'HEAD', 'TITLE', 'TEMPLATE', 'SCRIPT', 'STYLE', 'IFRAME', 'OBJECT', 'VIDEO', 'AUDIO', 'NOSCRIPT' ];\n    function hasChildTextNodes(elm) {\n      if (!hiddenTextElms.includes(elm.actualNode.nodeName.toUpperCase())) {\n        return elm.children.some(function(_ref8) {\n          var actualNode = _ref8.actualNode;\n          return actualNode.nodeType === 3 && actualNode.nodeValue.trim();\n        });\n      }\n    }\n    function hasContentVirtual(elm, noRecursion, ignoreAria) {\n      return hasChildTextNodes(elm) || is_visual_content_default(elm.actualNode) || !ignoreAria && !!label_virtual_default(elm) || !noRecursion && elm.children.some(function(child) {\n        return child.actualNode.nodeType === 1 && hasContentVirtual(child);\n      });\n    }\n    var has_content_virtual_default = hasContentVirtual;\n    function hasContent(elm, noRecursion, ignoreAria) {\n      elm = get_node_from_tree_default(elm);\n      return has_content_virtual_default(elm, noRecursion, ignoreAria);\n    }\n    var has_content_default = hasContent;\n    function isHiddenWithCSS(el, descendentVisibilityValue) {\n      var vNode = get_node_from_tree_default(el);\n      if (!vNode) {\n        return _isHiddenWithCSS(el, descendentVisibilityValue);\n      }\n      if (vNode._isHiddenWithCSS === void 0) {\n        vNode._isHiddenWithCSS = _isHiddenWithCSS(el, descendentVisibilityValue);\n      }\n      return vNode._isHiddenWithCSS;\n    }\n    function _isHiddenWithCSS(el, descendentVisibilityValue) {\n      if (el.nodeType === 9) {\n        return false;\n      }\n      if (el.nodeType === 11) {\n        el = el.host;\n      }\n      if ([ 'STYLE', 'SCRIPT' ].includes(el.nodeName.toUpperCase())) {\n        return false;\n      }\n      var style = window.getComputedStyle(el, null);\n      if (!style) {\n        throw new Error('Style does not exist for the given element.');\n      }\n      var displayValue = style.getPropertyValue('display');\n      if (displayValue === 'none') {\n        return true;\n      }\n      var HIDDEN_VISIBILITY_VALUES = [ 'hidden', 'collapse' ];\n      var visibilityValue = style.getPropertyValue('visibility');\n      if (HIDDEN_VISIBILITY_VALUES.includes(visibilityValue) && !descendentVisibilityValue) {\n        return true;\n      }\n      if (HIDDEN_VISIBILITY_VALUES.includes(visibilityValue) && descendentVisibilityValue && HIDDEN_VISIBILITY_VALUES.includes(descendentVisibilityValue)) {\n        return true;\n      }\n      var parent = get_composed_parent_default(el);\n      if (parent && !HIDDEN_VISIBILITY_VALUES.includes(visibilityValue)) {\n        return isHiddenWithCSS(parent, visibilityValue);\n      }\n      return false;\n    }\n    var is_hidden_with_css_default = isHiddenWithCSS;\n    function focusDisabled(el) {\n      var vNode = el instanceof abstract_virtual_node_default ? el : get_node_from_tree_default(el);\n      if (vNode.hasAttr('disabled')) {\n        return true;\n      }\n      if (vNode.props.nodeName !== 'area') {\n        if (!vNode.actualNode) {\n          return false;\n        }\n        return is_hidden_with_css_default(vNode.actualNode);\n      }\n      return false;\n    }\n    var focus_disabled_default = focusDisabled;\n    function isNativelyFocusable(el) {\n      var vNode = el instanceof abstract_virtual_node_default ? el : get_node_from_tree_default(el);\n      if (!vNode || focus_disabled_default(vNode)) {\n        return false;\n      }\n      switch (vNode.props.nodeName) {\n       case 'a':\n       case 'area':\n        if (vNode.hasAttr('href')) {\n          return true;\n        }\n        break;\n\n       case 'input':\n        return vNode.props.type !== 'hidden';\n\n       case 'textarea':\n       case 'select':\n       case 'summary':\n       case 'button':\n        return true;\n\n       case 'details':\n        return !query_selector_all_default(vNode, 'summary').length;\n      }\n      return false;\n    }\n    var is_natively_focusable_default = isNativelyFocusable;\n    function isFocusable(el) {\n      var vNode = el instanceof abstract_virtual_node_default ? el : get_node_from_tree_default(el);\n      if (vNode.props.nodeType !== 1) {\n        return false;\n      }\n      if (focus_disabled_default(vNode)) {\n        return false;\n      } else if (is_natively_focusable_default(vNode)) {\n        return true;\n      }\n      var tabindex = vNode.attr('tabindex');\n      if (tabindex && !isNaN(parseInt(tabindex, 10))) {\n        return true;\n      }\n      return false;\n    }\n    var is_focusable_default = isFocusable;\n    function insertedIntoFocusOrder(el) {\n      var tabIndex = parseInt(el.getAttribute('tabindex'), 10);\n      return tabIndex > -1 && is_focusable_default(el) && !is_natively_focusable_default(el);\n    }\n    var inserted_into_focus_order_default = insertedIntoFocusOrder;\n    function isHTML5(doc) {\n      var node = doc.doctype;\n      if (node === null) {\n        return false;\n      }\n      return node.name === 'html' && !node.publicId && !node.systemId;\n    }\n    var is_html5_default = isHTML5;\n    function walkDomNode(node, functor) {\n      if (functor(node.actualNode) !== false) {\n        node.children.forEach(function(child) {\n          return walkDomNode(child, functor);\n        });\n      }\n    }\n    var blockLike = [ 'block', 'list-item', 'table', 'flex', 'grid', 'inline-block' ];\n    function isBlock(elm) {\n      var display = window.getComputedStyle(elm).getPropertyValue('display');\n      return blockLike.includes(display) || display.substr(0, 6) === 'table-';\n    }\n    function getBlockParent(node) {\n      var parentBlock = get_composed_parent_default(node);\n      while (parentBlock && !isBlock(parentBlock)) {\n        parentBlock = get_composed_parent_default(parentBlock);\n      }\n      return get_node_from_tree_default(parentBlock);\n    }\n    function isInTextBlock(node) {\n      if (isBlock(node)) {\n        return false;\n      }\n      var virtualParent = getBlockParent(node);\n      var parentText = '';\n      var linkText = '';\n      var inBrBlock = 0;\n      walkDomNode(virtualParent, function(currNode) {\n        if (inBrBlock === 2) {\n          return false;\n        }\n        if (currNode.nodeType === 3) {\n          parentText += currNode.nodeValue;\n        }\n        if (currNode.nodeType !== 1) {\n          return;\n        }\n        var nodeName2 = (currNode.nodeName || '').toUpperCase();\n        if ([ 'BR', 'HR' ].includes(nodeName2)) {\n          if (inBrBlock === 0) {\n            parentText = '';\n            linkText = '';\n          } else {\n            inBrBlock = 2;\n          }\n        } else if (currNode.style.display === 'none' || currNode.style.overflow === 'hidden' || ![ '', null, 'none' ].includes(currNode.style['float']) || ![ '', null, 'relative' ].includes(currNode.style.position)) {\n          return false;\n        } else if (nodeName2 === 'A' && currNode.href || (currNode.getAttribute('role') || '').toLowerCase() === 'link') {\n          if (currNode === node) {\n            inBrBlock = 1;\n          }\n          linkText += currNode.textContent;\n          return false;\n        }\n      });\n      parentText = sanitize_default(parentText);\n      linkText = sanitize_default(linkText);\n      return parentText.length > linkText.length;\n    }\n    var is_in_text_block_default = isInTextBlock;\n    function isModalOpen(options) {\n      options = options || {};\n      var modalPercent = options.modalPercent || .75;\n      if (cache_default.get('isModalOpen')) {\n        return cache_default.get('isModalOpen');\n      }\n      var definiteModals = query_selector_all_filter_default(axe._tree[0], 'dialog, [role=dialog], [aria-modal=true]', function(vNode) {\n        return is_visible_default(vNode.actualNode);\n      });\n      if (definiteModals.length) {\n        cache_default.set('isModalOpen', true);\n        return true;\n      }\n      var viewport = get_viewport_size_default(window);\n      var percentWidth = viewport.width * modalPercent;\n      var percentHeight = viewport.height * modalPercent;\n      var x = (viewport.width - percentWidth) / 2;\n      var y = (viewport.height - percentHeight) / 2;\n      var points = [ {\n        x: x,\n        y: y\n      }, {\n        x: viewport.width - x,\n        y: y\n      }, {\n        x: viewport.width / 2,\n        y: viewport.height / 2\n      }, {\n        x: x,\n        y: viewport.height - y\n      }, {\n        x: viewport.width - x,\n        y: viewport.height - y\n      } ];\n      var stacks = points.map(function(point) {\n        return Array.from(document.elementsFromPoint(point.x, point.y));\n      });\n      var _loop3 = function _loop3(_i6) {\n        var modalElement = stacks[_i6].find(function(elm) {\n          var style = window.getComputedStyle(elm);\n          return parseInt(style.width, 10) >= percentWidth && parseInt(style.height, 10) >= percentHeight && style.getPropertyValue('pointer-events') !== 'none' && (style.position === 'absolute' || style.position === 'fixed');\n        });\n        if (modalElement && stacks.every(function(stack) {\n          return stack.includes(modalElement);\n        })) {\n          cache_default.set('isModalOpen', true);\n          return {\n            v: true\n          };\n        }\n      };\n      for (var _i6 = 0; _i6 < stacks.length; _i6++) {\n        var _ret = _loop3(_i6);\n        if (_typeof(_ret) === 'object') {\n          return _ret.v;\n        }\n      }\n      cache_default.set('isModalOpen', void 0);\n      return void 0;\n    }\n    var is_modal_open_default = isModalOpen;\n    function isNode(element) {\n      return element instanceof window.Node;\n    }\n    var is_node_default = isNode;\n    var data = {};\n    var incompleteData = {\n      set: function set(key, reason) {\n        if (typeof key !== 'string') {\n          throw new Error('Incomplete data: key must be a string');\n        }\n        if (reason) {\n          data[key] = reason;\n        }\n        return data[key];\n      },\n      get: function get(key) {\n        return data[key];\n      },\n      clear: function clear() {\n        data = {};\n      }\n    };\n    var incomplete_data_default = incompleteData;\n    function elementHasImage(elm, style) {\n      var graphicNodes = [ 'IMG', 'CANVAS', 'OBJECT', 'IFRAME', 'VIDEO', 'SVG' ];\n      var nodeName2 = elm.nodeName.toUpperCase();\n      if (graphicNodes.includes(nodeName2)) {\n        incomplete_data_default.set('bgColor', 'imgNode');\n        return true;\n      }\n      style = style || window.getComputedStyle(elm);\n      var bgImageStyle = style.getPropertyValue('background-image');\n      var hasBgImage = bgImageStyle !== 'none';\n      if (hasBgImage) {\n        var hasGradient = /gradient/.test(bgImageStyle);\n        incomplete_data_default.set('bgColor', hasGradient ? 'bgGradient' : 'bgImage');\n      }\n      return hasBgImage;\n    }\n    var element_has_image_default = elementHasImage;\n    var ariaAttrs = {\n      'aria-activedescendant': {\n        type: 'idref',\n        allowEmpty: true\n      },\n      'aria-atomic': {\n        type: 'boolean',\n        global: true\n      },\n      'aria-autocomplete': {\n        type: 'nmtoken',\n        values: [ 'inline', 'list', 'both', 'none' ]\n      },\n      'aria-busy': {\n        type: 'boolean',\n        global: true\n      },\n      'aria-checked': {\n        type: 'nmtoken',\n        values: [ 'false', 'mixed', 'true', 'undefined' ]\n      },\n      'aria-colcount': {\n        type: 'int',\n        minValue: -1\n      },\n      'aria-colindex': {\n        type: 'int',\n        minValue: 1\n      },\n      'aria-colspan': {\n        type: 'int',\n        minValue: 1\n      },\n      'aria-controls': {\n        type: 'idrefs',\n        allowEmpty: true,\n        global: true\n      },\n      'aria-current': {\n        type: 'nmtoken',\n        allowEmpty: true,\n        values: [ 'page', 'step', 'location', 'date', 'time', 'true', 'false' ],\n        global: true\n      },\n      'aria-describedby': {\n        type: 'idrefs',\n        allowEmpty: true,\n        global: true\n      },\n      'aria-details': {\n        type: 'idref',\n        allowEmpty: true,\n        global: true\n      },\n      'aria-disabled': {\n        type: 'boolean',\n        global: true\n      },\n      'aria-dropeffect': {\n        type: 'nmtokens',\n        values: [ 'copy', 'execute', 'link', 'move', 'none', 'popup' ],\n        global: true\n      },\n      'aria-errormessage': {\n        type: 'idref',\n        allowEmpty: true,\n        global: true\n      },\n      'aria-expanded': {\n        type: 'nmtoken',\n        values: [ 'true', 'false', 'undefined' ]\n      },\n      'aria-flowto': {\n        type: 'idrefs',\n        allowEmpty: true,\n        global: true\n      },\n      'aria-grabbed': {\n        type: 'nmtoken',\n        values: [ 'true', 'false', 'undefined' ],\n        global: true\n      },\n      'aria-haspopup': {\n        type: 'nmtoken',\n        allowEmpty: true,\n        values: [ 'true', 'false', 'menu', 'listbox', 'tree', 'grid', 'dialog' ],\n        global: true\n      },\n      'aria-hidden': {\n        type: 'nmtoken',\n        values: [ 'true', 'false', 'undefined' ],\n        global: true\n      },\n      'aria-invalid': {\n        type: 'nmtoken',\n        allowEmpty: true,\n        values: [ 'grammar', 'false', 'spelling', 'true' ],\n        global: true\n      },\n      'aria-keyshortcuts': {\n        type: 'string',\n        allowEmpty: true,\n        global: true\n      },\n      'aria-label': {\n        type: 'string',\n        allowEmpty: true,\n        global: true\n      },\n      'aria-labelledby': {\n        type: 'idrefs',\n        allowEmpty: true,\n        global: true\n      },\n      'aria-level': {\n        type: 'int',\n        minValue: 1\n      },\n      'aria-live': {\n        type: 'nmtoken',\n        values: [ 'assertive', 'off', 'polite' ],\n        global: true\n      },\n      'aria-modal': {\n        type: 'boolean'\n      },\n      'aria-multiline': {\n        type: 'boolean'\n      },\n      'aria-multiselectable': {\n        type: 'boolean'\n      },\n      'aria-orientation': {\n        type: 'nmtoken',\n        values: [ 'horizontal', 'undefined', 'vertical' ]\n      },\n      'aria-owns': {\n        type: 'idrefs',\n        allowEmpty: true,\n        global: true\n      },\n      'aria-placeholder': {\n        type: 'string',\n        allowEmpty: true\n      },\n      'aria-posinset': {\n        type: 'int',\n        minValue: 1\n      },\n      'aria-pressed': {\n        type: 'nmtoken',\n        values: [ 'false', 'mixed', 'true', 'undefined' ]\n      },\n      'aria-readonly': {\n        type: 'boolean'\n      },\n      'aria-relevant': {\n        type: 'nmtokens',\n        values: [ 'additions', 'all', 'removals', 'text' ],\n        global: true\n      },\n      'aria-required': {\n        type: 'boolean'\n      },\n      'aria-roledescription': {\n        type: 'string',\n        allowEmpty: true,\n        global: true\n      },\n      'aria-rowcount': {\n        type: 'int',\n        minValue: -1\n      },\n      'aria-rowindex': {\n        type: 'int',\n        minValue: 1\n      },\n      'aria-rowspan': {\n        type: 'int',\n        minValue: 0\n      },\n      'aria-selected': {\n        type: 'nmtoken',\n        values: [ 'false', 'true', 'undefined' ]\n      },\n      'aria-setsize': {\n        type: 'int',\n        minValue: -1\n      },\n      'aria-sort': {\n        type: 'nmtoken',\n        values: [ 'ascending', 'descending', 'none', 'other' ]\n      },\n      'aria-valuemax': {\n        type: 'decimal'\n      },\n      'aria-valuemin': {\n        type: 'decimal'\n      },\n      'aria-valuenow': {\n        type: 'decimal'\n      },\n      'aria-valuetext': {\n        type: 'string'\n      }\n    };\n    var aria_attrs_default = ariaAttrs;\n    var ariaRoles = {\n      alert: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      alertdialog: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-expanded', 'aria-modal' ],\n        superclassRole: [ 'alert', 'dialog' ],\n        accessibleNameRequired: true\n      },\n      application: {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-activedescendant', 'aria-expanded' ],\n        superclassRole: [ 'structure' ],\n        accessibleNameRequired: true\n      },\n      article: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-posinset', 'aria-setsize', 'aria-expanded' ],\n        superclassRole: [ 'document' ]\n      },\n      banner: {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      blockquote: {\n        type: 'structure',\n        superclassRole: [ 'section' ]\n      },\n      button: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-expanded', 'aria-pressed' ],\n        superclassRole: [ 'command' ],\n        accessibleNameRequired: true,\n        nameFromContent: true,\n        childrenPresentational: true\n      },\n      caption: {\n        type: 'structure',\n        requiredContext: [ 'figure', 'table', 'grid', 'treegrid' ],\n        superclassRole: [ 'section' ],\n        prohibitedAttrs: [ 'aria-label', 'aria-labelledby' ]\n      },\n      cell: {\n        type: 'structure',\n        requiredContext: [ 'row' ],\n        allowedAttrs: [ 'aria-colindex', 'aria-colspan', 'aria-rowindex', 'aria-rowspan', 'aria-expanded' ],\n        superclassRole: [ 'section' ],\n        nameFromContent: true\n      },\n      checkbox: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-checked', 'aria-readonly', 'aria-required' ],\n        superclassRole: [ 'input' ],\n        accessibleNameRequired: true,\n        nameFromContent: true,\n        childrenPresentational: true\n      },\n      code: {\n        type: 'structure',\n        superclassRole: [ 'section' ],\n        prohibitedAttrs: [ 'aria-label', 'aria-labelledby' ]\n      },\n      columnheader: {\n        type: 'structure',\n        requiredContext: [ 'row' ],\n        allowedAttrs: [ 'aria-sort', 'aria-colindex', 'aria-colspan', 'aria-expanded', 'aria-readonly', 'aria-required', 'aria-rowindex', 'aria-rowspan', 'aria-selected' ],\n        superclassRole: [ 'cell', 'gridcell', 'sectionhead' ],\n        accessibleNameRequired: false,\n        nameFromContent: true\n      },\n      combobox: {\n        type: 'composite',\n        requiredOwned: [ 'listbox', 'tree', 'grid', 'dialog', 'textbox' ],\n        requiredAttrs: [ 'aria-expanded' ],\n        allowedAttrs: [ 'aria-controls', 'aria-autocomplete', 'aria-readonly', 'aria-required', 'aria-activedescendant', 'aria-orientation' ],\n        superclassRole: [ 'select' ],\n        accessibleNameRequired: true\n      },\n      command: {\n        type: 'abstract',\n        superclassRole: [ 'widget' ]\n      },\n      complementary: {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      composite: {\n        type: 'abstract',\n        superclassRole: [ 'widget' ]\n      },\n      contentinfo: {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      definition: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      deletion: {\n        type: 'structure',\n        superclassRole: [ 'section' ],\n        prohibitedAttrs: [ 'aria-label', 'aria-labelledby' ]\n      },\n      dialog: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-expanded', 'aria-modal' ],\n        superclassRole: [ 'window' ],\n        accessibleNameRequired: true\n      },\n      directory: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'list' ],\n        nameFromContent: true\n      },\n      document: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'structure' ]\n      },\n      emphasis: {\n        type: 'structure',\n        superclassRole: [ 'section' ],\n        prohibitedAttrs: [ 'aria-label', 'aria-labelledby' ]\n      },\n      feed: {\n        type: 'structure',\n        requiredOwned: [ 'article' ],\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'list' ]\n      },\n      figure: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ],\n        nameFromContent: true\n      },\n      form: {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      grid: {\n        type: 'composite',\n        requiredOwned: [ 'rowgroup', 'row' ],\n        allowedAttrs: [ 'aria-level', 'aria-multiselectable', 'aria-readonly', 'aria-activedescendant', 'aria-colcount', 'aria-expanded', 'aria-rowcount' ],\n        superclassRole: [ 'composite', 'table' ],\n        accessibleNameRequired: false\n      },\n      gridcell: {\n        type: 'widget',\n        requiredContext: [ 'row' ],\n        allowedAttrs: [ 'aria-readonly', 'aria-required', 'aria-selected', 'aria-colindex', 'aria-colspan', 'aria-expanded', 'aria-rowindex', 'aria-rowspan' ],\n        superclassRole: [ 'cell', 'widget' ],\n        nameFromContent: true\n      },\n      group: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-activedescendant', 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      heading: {\n        type: 'structure',\n        requiredAttrs: [ 'aria-level' ],\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'sectionhead' ],\n        accessibleNameRequired: false,\n        nameFromContent: true\n      },\n      img: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ],\n        accessibleNameRequired: true,\n        childrenPresentational: true\n      },\n      input: {\n        type: 'abstract',\n        superclassRole: [ 'widget' ]\n      },\n      insertion: {\n        type: 'structure',\n        superclassRole: [ 'section' ],\n        prohibitedAttrs: [ 'aria-label', 'aria-labelledby' ]\n      },\n      landmark: {\n        type: 'abstract',\n        superclassRole: [ 'section' ]\n      },\n      link: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'command' ],\n        accessibleNameRequired: true,\n        nameFromContent: true\n      },\n      list: {\n        type: 'structure',\n        requiredOwned: [ 'group', 'listitem' ],\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      listbox: {\n        type: 'composite',\n        requiredOwned: [ 'option' ],\n        allowedAttrs: [ 'aria-multiselectable', 'aria-readonly', 'aria-required', 'aria-activedescendant', 'aria-expanded', 'aria-orientation' ],\n        superclassRole: [ 'select' ],\n        accessibleNameRequired: true\n      },\n      listitem: {\n        type: 'structure',\n        requiredContext: [ 'list', 'group' ],\n        allowedAttrs: [ 'aria-level', 'aria-posinset', 'aria-setsize', 'aria-expanded' ],\n        superclassRole: [ 'section' ],\n        nameFromContent: true\n      },\n      log: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      main: {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      marquee: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      math: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ],\n        childrenPresentational: true\n      },\n      menu: {\n        type: 'composite',\n        requiredOwned: [ 'group', 'menuitemradio', 'menuitem', 'menuitemcheckbox' ],\n        allowedAttrs: [ 'aria-activedescendant', 'aria-expanded', 'aria-orientation' ],\n        superclassRole: [ 'select' ]\n      },\n      menubar: {\n        type: 'composite',\n        requiredOwned: [ 'group', 'menuitemradio', 'menuitem', 'menuitemcheckbox' ],\n        allowedAttrs: [ 'aria-activedescendant', 'aria-expanded', 'aria-orientation' ],\n        superclassRole: [ 'menu' ]\n      },\n      menuitem: {\n        type: 'widget',\n        requiredContext: [ 'menu', 'menubar', 'group' ],\n        allowedAttrs: [ 'aria-posinset', 'aria-setsize', 'aria-expanded' ],\n        superclassRole: [ 'command' ],\n        accessibleNameRequired: true,\n        nameFromContent: true\n      },\n      menuitemcheckbox: {\n        type: 'widget',\n        requiredContext: [ 'menu', 'menubar', 'group' ],\n        allowedAttrs: [ 'aria-checked', 'aria-posinset', 'aria-readonly', 'aria-setsize' ],\n        superclassRole: [ 'checkbox', 'menuitem' ],\n        accessibleNameRequired: true,\n        nameFromContent: true,\n        childrenPresentational: true\n      },\n      menuitemradio: {\n        type: 'widget',\n        requiredContext: [ 'menu', 'menubar', 'group' ],\n        allowedAttrs: [ 'aria-checked', 'aria-posinset', 'aria-readonly', 'aria-setsize' ],\n        superclassRole: [ 'menuitemcheckbox', 'radio' ],\n        accessibleNameRequired: true,\n        nameFromContent: true,\n        childrenPresentational: true\n      },\n      meter: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-valuetext' ],\n        requiredAttrs: [ 'aria-valuemax', 'aria-valuemin', 'aria-valuenow' ],\n        superclassRole: [ 'range' ],\n        accessibleNameRequired: true,\n        childrenPresentational: true\n      },\n      navigation: {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      none: {\n        type: 'structure',\n        superclassRole: [ 'structure' ],\n        prohibitedAttrs: [ 'aria-label', 'aria-labelledby' ]\n      },\n      note: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      option: {\n        type: 'widget',\n        requiredContext: [ 'listbox' ],\n        allowedAttrs: [ 'aria-selected', 'aria-checked', 'aria-posinset', 'aria-setsize' ],\n        superclassRole: [ 'input' ],\n        accessibleNameRequired: true,\n        nameFromContent: true,\n        childrenPresentational: true\n      },\n      paragraph: {\n        type: 'structure',\n        superclassRole: [ 'section' ],\n        prohibitedAttrs: [ 'aria-label', 'aria-labelledby' ]\n      },\n      presentation: {\n        type: 'structure',\n        superclassRole: [ 'structure' ],\n        prohibitedAttrs: [ 'aria-label', 'aria-labelledby' ]\n      },\n      progressbar: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-expanded', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext' ],\n        superclassRole: [ 'range' ],\n        accessibleNameRequired: true,\n        childrenPresentational: true\n      },\n      radio: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-checked', 'aria-posinset', 'aria-setsize', 'aria-required' ],\n        superclassRole: [ 'input' ],\n        accessibleNameRequired: true,\n        nameFromContent: true,\n        childrenPresentational: true\n      },\n      radiogroup: {\n        type: 'composite',\n        requiredOwned: [ 'radio' ],\n        allowedAttrs: [ 'aria-readonly', 'aria-required', 'aria-activedescendant', 'aria-expanded', 'aria-orientation' ],\n        superclassRole: [ 'select' ],\n        accessibleNameRequired: false\n      },\n      range: {\n        type: 'abstract',\n        superclassRole: [ 'widget' ]\n      },\n      region: {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ],\n        accessibleNameRequired: false\n      },\n      roletype: {\n        type: 'abstract',\n        superclassRole: []\n      },\n      row: {\n        type: 'structure',\n        requiredContext: [ 'grid', 'rowgroup', 'table', 'treegrid' ],\n        requiredOwned: [ 'cell', 'columnheader', 'gridcell', 'rowheader' ],\n        allowedAttrs: [ 'aria-colindex', 'aria-level', 'aria-rowindex', 'aria-selected', 'aria-activedescendant', 'aria-expanded' ],\n        superclassRole: [ 'group', 'widget' ],\n        nameFromContent: true\n      },\n      rowgroup: {\n        type: 'structure',\n        requiredContext: [ 'grid', 'table', 'treegrid' ],\n        requiredOwned: [ 'row' ],\n        superclassRole: [ 'structure' ],\n        nameFromContent: true\n      },\n      rowheader: {\n        type: 'structure',\n        requiredContext: [ 'row' ],\n        allowedAttrs: [ 'aria-sort', 'aria-colindex', 'aria-colspan', 'aria-expanded', 'aria-readonly', 'aria-required', 'aria-rowindex', 'aria-rowspan', 'aria-selected' ],\n        superclassRole: [ 'cell', 'gridcell', 'sectionhead' ],\n        accessibleNameRequired: false,\n        nameFromContent: true\n      },\n      scrollbar: {\n        type: 'widget',\n        requiredAttrs: [ 'aria-valuenow' ],\n        allowedAttrs: [ 'aria-controls', 'aria-orientation', 'aria-valuemax', 'aria-valuemin', 'aria-valuetext' ],\n        superclassRole: [ 'range' ],\n        childrenPresentational: true\n      },\n      search: {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      searchbox: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-activedescendant', 'aria-autocomplete', 'aria-multiline', 'aria-placeholder', 'aria-readonly', 'aria-required' ],\n        superclassRole: [ 'textbox' ],\n        accessibleNameRequired: true\n      },\n      section: {\n        type: 'abstract',\n        superclassRole: [ 'structure' ],\n        nameFromContent: true\n      },\n      sectionhead: {\n        type: 'abstract',\n        superclassRole: [ 'structure' ],\n        nameFromContent: true\n      },\n      select: {\n        type: 'abstract',\n        superclassRole: [ 'composite', 'group' ]\n      },\n      separator: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-orientation', 'aria-valuetext' ],\n        superclassRole: [ 'structure', 'widget' ],\n        childrenPresentational: true\n      },\n      slider: {\n        type: 'widget',\n        requiredAttrs: [ 'aria-valuenow' ],\n        allowedAttrs: [ 'aria-valuemax', 'aria-valuemin', 'aria-orientation', 'aria-readonly', 'aria-valuetext' ],\n        superclassRole: [ 'input', 'range' ],\n        accessibleNameRequired: true,\n        childrenPresentational: true\n      },\n      spinbutton: {\n        type: 'widget',\n        requiredAttrs: [ 'aria-valuenow' ],\n        allowedAttrs: [ 'aria-valuemax', 'aria-valuemin', 'aria-readonly', 'aria-required', 'aria-activedescendant', 'aria-valuetext' ],\n        superclassRole: [ 'composite', 'input', 'range' ],\n        accessibleNameRequired: true\n      },\n      status: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      strong: {\n        type: 'structure',\n        superclassRole: [ 'section' ],\n        prohibitedAttrs: [ 'aria-label', 'aria-labelledby' ]\n      },\n      structure: {\n        type: 'abstract',\n        superclassRole: [ 'roletype' ]\n      },\n      subscript: {\n        type: 'structure',\n        superclassRole: [ 'section' ],\n        prohibitedAttrs: [ 'aria-label', 'aria-labelledby' ]\n      },\n      superscript: {\n        type: 'structure',\n        superclassRole: [ 'section' ],\n        prohibitedAttrs: [ 'aria-label', 'aria-labelledby' ]\n      },\n      switch: {\n        type: 'widget',\n        requiredAttrs: [ 'aria-checked' ],\n        allowedAttrs: [ 'aria-readonly' ],\n        superclassRole: [ 'checkbox' ],\n        accessibleNameRequired: true,\n        nameFromContent: true,\n        childrenPresentational: true\n      },\n      tab: {\n        type: 'widget',\n        requiredContext: [ 'tablist' ],\n        allowedAttrs: [ 'aria-posinset', 'aria-selected', 'aria-setsize', 'aria-expanded' ],\n        superclassRole: [ 'sectionhead', 'widget' ],\n        nameFromContent: true,\n        childrenPresentational: true\n      },\n      table: {\n        type: 'structure',\n        requiredOwned: [ 'rowgroup', 'row' ],\n        allowedAttrs: [ 'aria-colcount', 'aria-rowcount', 'aria-expanded' ],\n        superclassRole: [ 'section' ],\n        accessibleNameRequired: false,\n        nameFromContent: true\n      },\n      tablist: {\n        type: 'composite',\n        requiredOwned: [ 'tab' ],\n        allowedAttrs: [ 'aria-level', 'aria-multiselectable', 'aria-orientation', 'aria-activedescendant', 'aria-expanded' ],\n        superclassRole: [ 'composite' ]\n      },\n      tabpanel: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ],\n        accessibleNameRequired: false\n      },\n      term: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ],\n        nameFromContent: true\n      },\n      text: {\n        type: 'structure',\n        superclassRole: [ 'section' ],\n        nameFromContent: true\n      },\n      textbox: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-activedescendant', 'aria-autocomplete', 'aria-multiline', 'aria-placeholder', 'aria-readonly', 'aria-required' ],\n        superclassRole: [ 'input' ],\n        accessibleNameRequired: true\n      },\n      time: {\n        type: 'structure',\n        superclassRole: [ 'section' ]\n      },\n      timer: {\n        type: 'widget',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'status' ]\n      },\n      toolbar: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-orientation', 'aria-activedescendant', 'aria-expanded' ],\n        superclassRole: [ 'group' ],\n        accessibleNameRequired: true\n      },\n      tooltip: {\n        type: 'structure',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ],\n        nameFromContent: true\n      },\n      tree: {\n        type: 'composite',\n        requiredOwned: [ 'group', 'treeitem' ],\n        allowedAttrs: [ 'aria-multiselectable', 'aria-required', 'aria-activedescendant', 'aria-expanded', 'aria-orientation' ],\n        superclassRole: [ 'select' ],\n        accessibleNameRequired: false\n      },\n      treegrid: {\n        type: 'composite',\n        requiredOwned: [ 'rowgroup', 'row' ],\n        allowedAttrs: [ 'aria-activedescendant', 'aria-colcount', 'aria-expanded', 'aria-level', 'aria-multiselectable', 'aria-orientation', 'aria-readonly', 'aria-required', 'aria-rowcount' ],\n        superclassRole: [ 'grid', 'tree' ],\n        accessibleNameRequired: false\n      },\n      treeitem: {\n        type: 'widget',\n        requiredContext: [ 'group', 'tree' ],\n        allowedAttrs: [ 'aria-checked', 'aria-expanded', 'aria-level', 'aria-posinset', 'aria-selected', 'aria-setsize' ],\n        superclassRole: [ 'listitem', 'option' ],\n        accessibleNameRequired: true,\n        nameFromContent: true\n      },\n      widget: {\n        type: 'abstract',\n        superclassRole: [ 'roletype' ]\n      },\n      window: {\n        type: 'abstract',\n        superclassRole: [ 'roletype' ]\n      }\n    };\n    var aria_roles_default = ariaRoles;\n    var dpubRoles = {\n      'doc-abstract': {\n        type: 'section',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      'doc-acknowledgments': {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-afterword': {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-appendix': {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-backlink': {\n        type: 'link',\n        allowedAttrs: [ 'aria-expanded' ],\n        nameFromContent: true,\n        superclassRole: [ 'link' ]\n      },\n      'doc-biblioentry': {\n        type: 'listitem',\n        requiredContext: [ 'doc-bibliography' ],\n        allowedAttrs: [ 'aria-expanded', 'aria-level', 'aria-posinset', 'aria-setsize' ],\n        superclassRole: [ 'listitem' ]\n      },\n      'doc-bibliography': {\n        type: 'landmark',\n        requiredOwned: [ 'doc-biblioentry' ],\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-biblioref': {\n        type: 'link',\n        allowedAttrs: [ 'aria-expanded' ],\n        nameFromContent: true,\n        superclassRole: [ 'link' ]\n      },\n      'doc-chapter': {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-colophon': {\n        type: 'section',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      'doc-conclusion': {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-cover': {\n        type: 'img',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'img' ]\n      },\n      'doc-credit': {\n        type: 'section',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      'doc-credits': {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-dedication': {\n        type: 'section',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      'doc-endnote': {\n        type: 'listitem',\n        requiredContext: [ 'doc-endnotes' ],\n        allowedAttrs: [ 'aria-expanded', 'aria-level', 'aria-posinset', 'aria-setsize' ],\n        superclassRole: [ 'listitem' ]\n      },\n      'doc-endnotes': {\n        type: 'landmark',\n        requiredOwned: [ 'doc-endnote' ],\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-epigraph': {\n        type: 'section',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      'doc-epilogue': {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-errata': {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-example': {\n        type: 'section',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      'doc-footnote': {\n        type: 'section',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      'doc-foreword': {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-glossary': {\n        type: 'landmark',\n        requiredOwned: [ 'definition', 'term' ],\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-glossref': {\n        type: 'link',\n        allowedAttrs: [ 'aria-expanded' ],\n        nameFromContent: true,\n        superclassRole: [ 'link' ]\n      },\n      'doc-index': {\n        type: 'navigation',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'navigation' ]\n      },\n      'doc-introduction': {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-noteref': {\n        type: 'link',\n        allowedAttrs: [ 'aria-expanded' ],\n        nameFromContent: true,\n        superclassRole: [ 'link' ]\n      },\n      'doc-notice': {\n        type: 'note',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'note' ]\n      },\n      'doc-pagebreak': {\n        type: 'separator',\n        allowedAttrs: [ 'aria-expanded', 'aria-orientation' ],\n        superclassRole: [ 'separator' ],\n        childrenPresentational: true\n      },\n      'doc-pagelist': {\n        type: 'navigation',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'navigation' ]\n      },\n      'doc-part': {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-preface': {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-prologue': {\n        type: 'landmark',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'landmark' ]\n      },\n      'doc-pullquote': {\n        type: 'none',\n        superclassRole: [ 'none' ]\n      },\n      'doc-qna': {\n        type: 'section',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'section' ]\n      },\n      'doc-subtitle': {\n        type: 'sectionhead',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'sectionhead' ]\n      },\n      'doc-tip': {\n        type: 'note',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'note' ]\n      },\n      'doc-toc': {\n        type: 'navigation',\n        allowedAttrs: [ 'aria-expanded' ],\n        superclassRole: [ 'navigation' ]\n      }\n    };\n    var dpub_roles_default = dpubRoles;\n    var graphicsRoles = {\n      'graphics-document': {\n        type: 'structure',\n        superclassRole: [ 'document' ],\n        accessibleNameRequired: true\n      },\n      'graphics-object': {\n        type: 'structure',\n        superclassRole: [ 'group' ],\n        nameFromContent: true\n      },\n      'graphics-symbol': {\n        type: 'structure',\n        superclassRole: [ 'img' ],\n        accessibleNameRequired: true,\n        childrenPresentational: true\n      }\n    };\n    var graphics_roles_default = graphicsRoles;\n    var htmlElms = {\n      a: {\n        variant: {\n          href: {\n            matches: '[href]',\n            contentTypes: [ 'interactive', 'phrasing', 'flow' ],\n            allowedRoles: [ 'button', 'checkbox', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'switch', 'tab', 'treeitem', 'doc-backlink', 'doc-biblioref', 'doc-glossref', 'doc-noteref' ],\n            namingMethods: [ 'subtreeText' ]\n          },\n          default: {\n            contentTypes: [ 'phrasing', 'flow' ],\n            allowedRoles: true\n          }\n        }\n      },\n      abbr: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      addres: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: true\n      },\n      area: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: false,\n        namingMethods: [ 'altText' ]\n      },\n      article: {\n        contentTypes: [ 'sectioning', 'flow' ],\n        allowedRoles: [ 'feed', 'presentation', 'none', 'document', 'application', 'main', 'region' ],\n        shadowRoot: true\n      },\n      aside: {\n        contentTypes: [ 'sectioning', 'flow' ],\n        allowedRoles: [ 'feed', 'note', 'presentation', 'none', 'region', 'search', 'doc-dedication', 'doc-example', 'doc-footnote', 'doc-pullquote', 'doc-tip' ]\n      },\n      audio: {\n        variant: {\n          controls: {\n            matches: '[controls]',\n            contentTypes: [ 'interactive', 'embedded', 'phrasing', 'flow' ]\n          },\n          default: {\n            contentTypes: [ 'embedded', 'phrasing', 'flow' ]\n          }\n        },\n        allowedRoles: [ 'application' ]\n      },\n      b: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: false\n      },\n      base: {\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      bdi: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      bdo: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      blockquote: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: true,\n        shadowRoot: true\n      },\n      body: {\n        allowedRoles: false,\n        shadowRoot: true\n      },\n      br: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: [ 'presentation', 'none' ],\n        namingMethods: [ 'titleText', 'singleSpace' ]\n      },\n      button: {\n        contentTypes: [ 'interactive', 'phrasing', 'flow' ],\n        allowedRoles: [ 'checkbox', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'switch', 'tab' ],\n        namingMethods: [ 'subtreeText' ]\n      },\n      canvas: {\n        allowedRoles: true,\n        contentTypes: [ 'embedded', 'phrasing', 'flow' ]\n      },\n      caption: {\n        allowedRoles: false\n      },\n      cite: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      code: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      col: {\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      colgroup: {\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      data: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      datalist: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: false,\n        implicitAttrs: {\n          'aria-multiselectable': 'false'\n        }\n      },\n      dd: {\n        allowedRoles: false\n      },\n      del: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      dfn: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      details: {\n        contentTypes: [ 'interactive', 'flow' ],\n        allowedRoles: false\n      },\n      dialog: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: [ 'alertdialog' ]\n      },\n      div: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: true,\n        shadowRoot: true\n      },\n      dl: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: [ 'group', 'list', 'presentation', 'none' ]\n      },\n      dt: {\n        allowedRoles: [ 'listitem' ]\n      },\n      em: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      embed: {\n        contentTypes: [ 'interactive', 'embedded', 'phrasing', 'flow' ],\n        allowedRoles: [ 'application', 'document', 'img', 'presentation', 'none' ]\n      },\n      fieldset: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: [ 'none', 'presentation', 'radiogroup' ],\n        namingMethods: [ 'fieldsetLegendText' ]\n      },\n      figcaption: {\n        allowedRoles: [ 'group', 'none', 'presentation' ]\n      },\n      figure: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: true,\n        namingMethods: [ 'figureText', 'titleText' ]\n      },\n      footer: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: [ 'group', 'none', 'presentation', 'doc-footnote' ],\n        shadowRoot: true\n      },\n      form: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: [ 'search', 'none', 'presentation' ]\n      },\n      h1: {\n        contentTypes: [ 'heading', 'flow' ],\n        allowedRoles: [ 'none', 'presentation', 'tab', 'doc-subtitle' ],\n        shadowRoot: true,\n        implicitAttrs: {\n          'aria-level': '1'\n        }\n      },\n      h2: {\n        contentTypes: [ 'heading', 'flow' ],\n        allowedRoles: [ 'none', 'presentation', 'tab', 'doc-subtitle' ],\n        shadowRoot: true,\n        implicitAttrs: {\n          'aria-level': '2'\n        }\n      },\n      h3: {\n        contentTypes: [ 'heading', 'flow' ],\n        allowedRoles: [ 'none', 'presentation', 'tab', 'doc-subtitle' ],\n        shadowRoot: true,\n        implicitAttrs: {\n          'aria-level': '3'\n        }\n      },\n      h4: {\n        contentTypes: [ 'heading', 'flow' ],\n        allowedRoles: [ 'none', 'presentation', 'tab', 'doc-subtitle' ],\n        shadowRoot: true,\n        implicitAttrs: {\n          'aria-level': '4'\n        }\n      },\n      h5: {\n        contentTypes: [ 'heading', 'flow' ],\n        allowedRoles: [ 'none', 'presentation', 'tab', 'doc-subtitle' ],\n        shadowRoot: true,\n        implicitAttrs: {\n          'aria-level': '5'\n        }\n      },\n      h6: {\n        contentTypes: [ 'heading', 'flow' ],\n        allowedRoles: [ 'none', 'presentation', 'tab', 'doc-subtitle' ],\n        shadowRoot: true,\n        implicitAttrs: {\n          'aria-level': '6'\n        }\n      },\n      head: {\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      header: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: [ 'group', 'none', 'presentation', 'doc-footnote' ],\n        shadowRoot: true\n      },\n      hgroup: {\n        contentTypes: [ 'heading', 'flow' ],\n        allowedRoles: true\n      },\n      hr: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: [ 'none', 'presentation', 'doc-pagebreak' ],\n        namingMethods: [ 'titleText', 'singleSpace' ]\n      },\n      html: {\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      i: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      iframe: {\n        contentTypes: [ 'interactive', 'embedded', 'phrasing', 'flow' ],\n        allowedRoles: [ 'application', 'document', 'img', 'none', 'presentation' ]\n      },\n      img: {\n        variant: {\n          nonEmptyAlt: {\n            matches: {\n              attributes: {\n                alt: '/.+/'\n              }\n            },\n            allowedRoles: [ 'button', 'checkbox', 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'progressbar', 'scrollbar', 'separator', 'slider', 'switch', 'tab', 'treeitem', 'doc-cover' ]\n          },\n          usemap: {\n            matches: '[usemap]',\n            contentTypes: [ 'interactive', 'embedded', 'phrasing', 'flow' ]\n          },\n          default: {\n            allowedRoles: [ 'presentation', 'none' ],\n            contentTypes: [ 'embedded', 'phrasing', 'flow' ]\n          }\n        },\n        namingMethods: [ 'altText' ]\n      },\n      input: {\n        variant: {\n          button: {\n            matches: {\n              properties: {\n                type: 'button'\n              }\n            },\n            allowedRoles: [ 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'switch', 'tab' ]\n          },\n          buttonType: {\n            matches: {\n              properties: {\n                type: [ 'button', 'submit', 'reset' ]\n              }\n            },\n            namingMethods: [ 'valueText', 'titleText', 'buttonDefaultText' ]\n          },\n          checkboxPressed: {\n            matches: {\n              properties: {\n                type: 'checkbox'\n              },\n              attributes: {\n                'aria-pressed': '/.*/'\n              }\n            },\n            allowedRoles: [ 'button', 'menuitemcheckbox', 'option', 'switch' ],\n            implicitAttrs: {\n              'aria-checked': 'false'\n            }\n          },\n          checkbox: {\n            matches: {\n              properties: {\n                type: 'checkbox'\n              },\n              attributes: {\n                'aria-pressed': null\n              }\n            },\n            allowedRoles: [ 'menuitemcheckbox', 'option', 'switch' ],\n            implicitAttrs: {\n              'aria-checked': 'false'\n            }\n          },\n          noRoles: {\n            matches: {\n              properties: {\n                type: [ 'color', 'date', 'datetime-local', 'file', 'month', 'number', 'password', 'range', 'reset', 'submit', 'time', 'week' ]\n              }\n            },\n            allowedRoles: false\n          },\n          hidden: {\n            matches: {\n              properties: {\n                type: 'hidden'\n              }\n            },\n            contentTypes: [ 'flow' ],\n            allowedRoles: false,\n            noAriaAttrs: true\n          },\n          image: {\n            matches: {\n              properties: {\n                type: 'image'\n              }\n            },\n            allowedRoles: [ 'link', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'radio', 'switch' ],\n            namingMethods: [ 'altText', 'valueText', 'labelText', 'titleText', 'buttonDefaultText' ]\n          },\n          radio: {\n            matches: {\n              properties: {\n                type: 'radio'\n              }\n            },\n            allowedRoles: [ 'menuitemradio' ],\n            implicitAttrs: {\n              'aria-checked': 'false'\n            }\n          },\n          textWithList: {\n            matches: {\n              properties: {\n                type: 'text'\n              },\n              attributes: {\n                list: '/.*/'\n              }\n            },\n            allowedRoles: false\n          },\n          default: {\n            contentTypes: [ 'interactive', 'flow' ],\n            allowedRoles: [ 'combobox', 'searchbox', 'spinbutton' ],\n            implicitAttrs: {\n              'aria-valuenow': ''\n            },\n            namingMethods: [ 'labelText', 'placeholderText' ]\n          }\n        }\n      },\n      ins: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      kbd: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      label: {\n        contentTypes: [ 'interactive', 'phrasing', 'flow' ],\n        allowedRoles: false\n      },\n      legend: {\n        allowedRoles: false\n      },\n      li: {\n        allowedRoles: [ 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'none', 'presentation', 'radio', 'separator', 'tab', 'treeitem', 'doc-biblioentry', 'doc-endnote' ],\n        implicitAttrs: {\n          'aria-setsize': '1',\n          'aria-posinset': '1'\n        }\n      },\n      link: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      main: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: false,\n        shadowRoot: true\n      },\n      map: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      math: {\n        contentTypes: [ 'embedded', 'phrasing', 'flow' ],\n        allowedRoles: false\n      },\n      mark: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      menu: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: [ 'directory', 'group', 'listbox', 'menu', 'menubar', 'none', 'presentation', 'radiogroup', 'tablist', 'toolbar', 'tree' ]\n      },\n      meta: {\n        variant: {\n          itemprop: {\n            matches: '[itemprop]',\n            contentTypes: [ 'phrasing', 'flow' ]\n          }\n        },\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      meter: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: false\n      },\n      nav: {\n        contentTypes: [ 'sectioning', 'flow' ],\n        allowedRoles: [ 'doc-index', 'doc-pagelist', 'doc-toc' ],\n        shadowRoot: true\n      },\n      noscript: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      object: {\n        variant: {\n          usemap: {\n            matches: '[usemap]',\n            contentTypes: [ 'interactive', 'embedded', 'phrasing', 'flow' ]\n          },\n          default: {\n            contentTypes: [ 'embedded', 'phrasing', 'flow' ]\n          }\n        },\n        allowedRoles: [ 'application', 'document', 'img' ]\n      },\n      ol: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: [ 'directory', 'group', 'listbox', 'menu', 'menubar', 'none', 'presentation', 'radiogroup', 'tablist', 'toolbar', 'tree' ]\n      },\n      optgroup: {\n        allowedRoles: false\n      },\n      option: {\n        allowedRoles: false,\n        implicitAttrs: {\n          'aria-selected': 'false'\n        }\n      },\n      output: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true,\n        namingMethods: [ 'subtreeText' ]\n      },\n      p: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: true,\n        shadowRoot: true\n      },\n      param: {\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      picture: {\n        contentTypes: [ 'embedded', 'phrasing', 'flow' ],\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      pre: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: true\n      },\n      progress: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true,\n        implicitAttrs: {\n          'aria-valuemax': '100',\n          'aria-valuemin': '0',\n          'aria-valuenow': '0'\n        }\n      },\n      q: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      rp: {\n        allowedRoles: true\n      },\n      rt: {\n        allowedRoles: true\n      },\n      ruby: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      s: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      samp: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      script: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      section: {\n        contentTypes: [ 'sectioning', 'flow' ],\n        allowedRoles: [ 'alert', 'alertdialog', 'application', 'banner', 'complementary', 'contentinfo', 'dialog', 'document', 'feed', 'log', 'main', 'marquee', 'navigation', 'none', 'note', 'presentation', 'search', 'status', 'tabpanel', 'doc-abstract', 'doc-acknowledgments', 'doc-afterword', 'doc-appendix', 'doc-bibliography', 'doc-chapter', 'doc-colophon', 'doc-conclusion', 'doc-credit', 'doc-credits', 'doc-dedication', 'doc-endnotes', 'doc-epigraph', 'doc-epilogue', 'doc-errata', 'doc-example', 'doc-foreword', 'doc-glossary', 'doc-index', 'doc-introduction', 'doc-notice', 'doc-pagelist', 'doc-part', 'doc-preface', 'doc-prologue', 'doc-pullquote', 'doc-qna', 'doc-toc' ],\n        shadowRoot: true\n      },\n      select: {\n        variant: {\n          combobox: {\n            matches: {\n              attributes: {\n                multiple: null,\n                size: [ null, '1' ]\n              }\n            },\n            allowedRoles: [ 'menu' ]\n          },\n          default: {\n            allowedRoles: false\n          }\n        },\n        contentTypes: [ 'interactive', 'phrasing', 'flow' ],\n        implicitAttrs: {\n          'aria-valuenow': ''\n        },\n        namingMethods: [ 'labelText' ]\n      },\n      slot: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      small: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      source: {\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      span: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true,\n        shadowRoot: true\n      },\n      strong: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      style: {\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      svg: {\n        contentTypes: [ 'embedded', 'phrasing', 'flow' ],\n        allowedRoles: [ 'application', 'document', 'img' ],\n        namingMethods: [ 'svgTitleText' ]\n      },\n      sub: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      summary: {\n        allowedRoles: false,\n        namingMethods: [ 'subtreeText' ]\n      },\n      sup: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      table: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: true,\n        namingMethods: [ 'tableCaptionText', 'tableSummaryText' ]\n      },\n      tbody: {\n        allowedRoles: true\n      },\n      template: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      textarea: {\n        contentTypes: [ 'interactive', 'phrasing', 'flow' ],\n        allowedRoles: false,\n        implicitAttrs: {\n          'aria-valuenow': '',\n          'aria-multiline': 'true'\n        },\n        namingMethods: [ 'labelText', 'placeholderText' ]\n      },\n      tfoot: {\n        allowedRoles: true\n      },\n      thead: {\n        allowedRoles: true\n      },\n      time: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      title: {\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      td: {\n        allowedRoles: true\n      },\n      th: {\n        allowedRoles: true\n      },\n      tr: {\n        allowedRoles: true\n      },\n      track: {\n        allowedRoles: false,\n        noAriaAttrs: true\n      },\n      u: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      ul: {\n        contentTypes: [ 'flow' ],\n        allowedRoles: [ 'directory', 'group', 'listbox', 'menu', 'menubar', 'none', 'presentation', 'radiogroup', 'tablist', 'toolbar', 'tree' ]\n      },\n      var: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      },\n      video: {\n        variant: {\n          controls: {\n            matches: '[controls]',\n            contentTypes: [ 'interactive', 'embedded', 'phrasing', 'flow' ]\n          },\n          default: {\n            contentTypes: [ 'embedded', 'phrasing', 'flow' ]\n          }\n        },\n        allowedRoles: [ 'application' ]\n      },\n      wbr: {\n        contentTypes: [ 'phrasing', 'flow' ],\n        allowedRoles: true\n      }\n    };\n    var html_elms_default = htmlElms;\n    var cssColors = {\n      aliceblue: [ 240, 248, 255 ],\n      antiquewhite: [ 250, 235, 215 ],\n      aqua: [ 0, 255, 255 ],\n      aquamarine: [ 127, 255, 212 ],\n      azure: [ 240, 255, 255 ],\n      beige: [ 245, 245, 220 ],\n      bisque: [ 255, 228, 196 ],\n      black: [ 0, 0, 0 ],\n      blanchedalmond: [ 255, 235, 205 ],\n      blue: [ 0, 0, 255 ],\n      blueviolet: [ 138, 43, 226 ],\n      brown: [ 165, 42, 42 ],\n      burlywood: [ 222, 184, 135 ],\n      cadetblue: [ 95, 158, 160 ],\n      chartreuse: [ 127, 255, 0 ],\n      chocolate: [ 210, 105, 30 ],\n      coral: [ 255, 127, 80 ],\n      cornflowerblue: [ 100, 149, 237 ],\n      cornsilk: [ 255, 248, 220 ],\n      crimson: [ 220, 20, 60 ],\n      cyan: [ 0, 255, 255 ],\n      darkblue: [ 0, 0, 139 ],\n      darkcyan: [ 0, 139, 139 ],\n      darkgoldenrod: [ 184, 134, 11 ],\n      darkgray: [ 169, 169, 169 ],\n      darkgreen: [ 0, 100, 0 ],\n      darkgrey: [ 169, 169, 169 ],\n      darkkhaki: [ 189, 183, 107 ],\n      darkmagenta: [ 139, 0, 139 ],\n      darkolivegreen: [ 85, 107, 47 ],\n      darkorange: [ 255, 140, 0 ],\n      darkorchid: [ 153, 50, 204 ],\n      darkred: [ 139, 0, 0 ],\n      darksalmon: [ 233, 150, 122 ],\n      darkseagreen: [ 143, 188, 143 ],\n      darkslateblue: [ 72, 61, 139 ],\n      darkslategray: [ 47, 79, 79 ],\n      darkslategrey: [ 47, 79, 79 ],\n      darkturquoise: [ 0, 206, 209 ],\n      darkviolet: [ 148, 0, 211 ],\n      deeppink: [ 255, 20, 147 ],\n      deepskyblue: [ 0, 191, 255 ],\n      dimgray: [ 105, 105, 105 ],\n      dimgrey: [ 105, 105, 105 ],\n      dodgerblue: [ 30, 144, 255 ],\n      firebrick: [ 178, 34, 34 ],\n      floralwhite: [ 255, 250, 240 ],\n      forestgreen: [ 34, 139, 34 ],\n      fuchsia: [ 255, 0, 255 ],\n      gainsboro: [ 220, 220, 220 ],\n      ghostwhite: [ 248, 248, 255 ],\n      gold: [ 255, 215, 0 ],\n      goldenrod: [ 218, 165, 32 ],\n      gray: [ 128, 128, 128 ],\n      green: [ 0, 128, 0 ],\n      greenyellow: [ 173, 255, 47 ],\n      grey: [ 128, 128, 128 ],\n      honeydew: [ 240, 255, 240 ],\n      hotpink: [ 255, 105, 180 ],\n      indianred: [ 205, 92, 92 ],\n      indigo: [ 75, 0, 130 ],\n      ivory: [ 255, 255, 240 ],\n      khaki: [ 240, 230, 140 ],\n      lavender: [ 230, 230, 250 ],\n      lavenderblush: [ 255, 240, 245 ],\n      lawngreen: [ 124, 252, 0 ],\n      lemonchiffon: [ 255, 250, 205 ],\n      lightblue: [ 173, 216, 230 ],\n      lightcoral: [ 240, 128, 128 ],\n      lightcyan: [ 224, 255, 255 ],\n      lightgoldenrodyellow: [ 250, 250, 210 ],\n      lightgray: [ 211, 211, 211 ],\n      lightgreen: [ 144, 238, 144 ],\n      lightgrey: [ 211, 211, 211 ],\n      lightpink: [ 255, 182, 193 ],\n      lightsalmon: [ 255, 160, 122 ],\n      lightseagreen: [ 32, 178, 170 ],\n      lightskyblue: [ 135, 206, 250 ],\n      lightslategray: [ 119, 136, 153 ],\n      lightslategrey: [ 119, 136, 153 ],\n      lightsteelblue: [ 176, 196, 222 ],\n      lightyellow: [ 255, 255, 224 ],\n      lime: [ 0, 255, 0 ],\n      limegreen: [ 50, 205, 50 ],\n      linen: [ 250, 240, 230 ],\n      magenta: [ 255, 0, 255 ],\n      maroon: [ 128, 0, 0 ],\n      mediumaquamarine: [ 102, 205, 170 ],\n      mediumblue: [ 0, 0, 205 ],\n      mediumorchid: [ 186, 85, 211 ],\n      mediumpurple: [ 147, 112, 219 ],\n      mediumseagreen: [ 60, 179, 113 ],\n      mediumslateblue: [ 123, 104, 238 ],\n      mediumspringgreen: [ 0, 250, 154 ],\n      mediumturquoise: [ 72, 209, 204 ],\n      mediumvioletred: [ 199, 21, 133 ],\n      midnightblue: [ 25, 25, 112 ],\n      mintcream: [ 245, 255, 250 ],\n      mistyrose: [ 255, 228, 225 ],\n      moccasin: [ 255, 228, 181 ],\n      navajowhite: [ 255, 222, 173 ],\n      navy: [ 0, 0, 128 ],\n      oldlace: [ 253, 245, 230 ],\n      olive: [ 128, 128, 0 ],\n      olivedrab: [ 107, 142, 35 ],\n      orange: [ 255, 165, 0 ],\n      orangered: [ 255, 69, 0 ],\n      orchid: [ 218, 112, 214 ],\n      palegoldenrod: [ 238, 232, 170 ],\n      palegreen: [ 152, 251, 152 ],\n      paleturquoise: [ 175, 238, 238 ],\n      palevioletred: [ 219, 112, 147 ],\n      papayawhip: [ 255, 239, 213 ],\n      peachpuff: [ 255, 218, 185 ],\n      peru: [ 205, 133, 63 ],\n      pink: [ 255, 192, 203 ],\n      plum: [ 221, 160, 221 ],\n      powderblue: [ 176, 224, 230 ],\n      purple: [ 128, 0, 128 ],\n      rebeccapurple: [ 102, 51, 153 ],\n      red: [ 255, 0, 0 ],\n      rosybrown: [ 188, 143, 143 ],\n      royalblue: [ 65, 105, 225 ],\n      saddlebrown: [ 139, 69, 19 ],\n      salmon: [ 250, 128, 114 ],\n      sandybrown: [ 244, 164, 96 ],\n      seagreen: [ 46, 139, 87 ],\n      seashell: [ 255, 245, 238 ],\n      sienna: [ 160, 82, 45 ],\n      silver: [ 192, 192, 192 ],\n      skyblue: [ 135, 206, 235 ],\n      slateblue: [ 106, 90, 205 ],\n      slategray: [ 112, 128, 144 ],\n      slategrey: [ 112, 128, 144 ],\n      snow: [ 255, 250, 250 ],\n      springgreen: [ 0, 255, 127 ],\n      steelblue: [ 70, 130, 180 ],\n      tan: [ 210, 180, 140 ],\n      teal: [ 0, 128, 128 ],\n      thistle: [ 216, 191, 216 ],\n      tomato: [ 255, 99, 71 ],\n      turquoise: [ 64, 224, 208 ],\n      violet: [ 238, 130, 238 ],\n      wheat: [ 245, 222, 179 ],\n      white: [ 255, 255, 255 ],\n      whitesmoke: [ 245, 245, 245 ],\n      yellow: [ 255, 255, 0 ],\n      yellowgreen: [ 154, 205, 50 ]\n    };\n    var css_colors_default = cssColors;\n    var originals = {\n      ariaAttrs: aria_attrs_default,\n      ariaRoles: _extends({}, aria_roles_default, dpub_roles_default, graphics_roles_default),\n      htmlElms: html_elms_default,\n      cssColors: css_colors_default\n    };\n    var standards = _extends({}, originals);\n    function configureStandards(config) {\n      Object.keys(standards).forEach(function(propName) {\n        if (config[propName]) {\n          standards[propName] = deep_merge_default(standards[propName], config[propName]);\n        }\n      });\n    }\n    function resetStandards() {\n      Object.keys(standards).forEach(function(propName) {\n        standards[propName] = originals[propName];\n      });\n    }\n    var standards_default = standards;\n    function convertColorVal(colorFunc, value, index) {\n      if (/%$/.test(value)) {\n        if (index === 3) {\n          return parseFloat(value) / 100;\n        }\n        return parseFloat(value) * 255 / 100;\n      }\n      if (colorFunc[index] === 'h') {\n        if (/turn$/.test(value)) {\n          return parseFloat(value) * 360;\n        }\n        if (/rad$/.test(value)) {\n          return parseFloat(value) * 57.3;\n        }\n      }\n      return parseFloat(value);\n    }\n    function hslToRgb(_ref9) {\n      var _ref10 = _slicedToArray(_ref9, 4), hue = _ref10[0], saturation = _ref10[1], lightness = _ref10[2], alpha = _ref10[3];\n      saturation /= 255;\n      lightness /= 255;\n      var high = (1 - Math.abs(2 * lightness - 1)) * saturation;\n      var low = high * (1 - Math.abs(hue / 60 % 2 - 1));\n      var base = lightness - high / 2;\n      var colors;\n      if (hue < 60) {\n        colors = [ high, low, 0 ];\n      } else if (hue < 120) {\n        colors = [ low, high, 0 ];\n      } else if (hue < 180) {\n        colors = [ 0, high, low ];\n      } else if (hue < 240) {\n        colors = [ 0, low, high ];\n      } else if (hue < 300) {\n        colors = [ low, 0, high ];\n      } else {\n        colors = [ high, 0, low ];\n      }\n      return colors.map(function(color10) {\n        return Math.round((color10 + base) * 255);\n      }).concat(alpha);\n    }\n    function Color(red, green, blue, alpha) {\n      this.red = red;\n      this.green = green;\n      this.blue = blue;\n      this.alpha = alpha;\n      this.toHexString = function toHexString() {\n        var redString = Math.round(this.red).toString(16);\n        var greenString = Math.round(this.green).toString(16);\n        var blueString = Math.round(this.blue).toString(16);\n        return '#' + (this.red > 15.5 ? redString : '0' + redString) + (this.green > 15.5 ? greenString : '0' + greenString) + (this.blue > 15.5 ? blueString : '0' + blueString);\n      };\n      var hexRegex = /^#[0-9a-f]{3,8}$/i;\n      var colorFnRegex = /^((?:rgb|hsl)a?)\\s*\\(([^\\)]*)\\)/i;\n      this.parseString = function parseString(colorString) {\n        if (standards_default.cssColors[colorString] || colorString === 'transparent') {\n          var _ref11 = standards_default.cssColors[colorString] || [ 0, 0, 0 ], _ref12 = _slicedToArray(_ref11, 3), red2 = _ref12[0], green2 = _ref12[1], blue2 = _ref12[2];\n          this.red = red2;\n          this.green = green2;\n          this.blue = blue2;\n          this.alpha = colorString === 'transparent' ? 0 : 1;\n          return;\n        }\n        if (colorString.match(colorFnRegex)) {\n          this.parseColorFnString(colorString);\n          return;\n        }\n        if (colorString.match(hexRegex)) {\n          this.parseHexString(colorString);\n          return;\n        }\n        throw new Error('Unable to parse color \"'.concat(colorString, '\"'));\n      };\n      this.parseRgbString = function parseRgbString(colorString) {\n        if (colorString === 'transparent') {\n          this.red = 0;\n          this.green = 0;\n          this.blue = 0;\n          this.alpha = 0;\n          return;\n        }\n        this.parseColorFnString(colorString);\n      };\n      this.parseHexString = function parseHexString(colorString) {\n        if (!colorString.match(hexRegex) || [ 6, 8 ].includes(colorString.length)) {\n          return;\n        }\n        colorString = colorString.replace('#', '');\n        if (colorString.length < 6) {\n          var _colorString = colorString, _colorString2 = _slicedToArray(_colorString, 4), r = _colorString2[0], g = _colorString2[1], b = _colorString2[2], a = _colorString2[3];\n          colorString = r + r + g + g + b + b;\n          if (a) {\n            colorString += a + a;\n          }\n        }\n        var aRgbHex = colorString.match(/.{1,2}/g);\n        this.red = parseInt(aRgbHex[0], 16);\n        this.green = parseInt(aRgbHex[1], 16);\n        this.blue = parseInt(aRgbHex[2], 16);\n        if (aRgbHex[3]) {\n          this.alpha = parseInt(aRgbHex[3], 16) / 255;\n        } else {\n          this.alpha = 1;\n        }\n      };\n      this.parseColorFnString = function parseColorFnString(colorString) {\n        var _ref13 = colorString.match(colorFnRegex) || [], _ref14 = _slicedToArray(_ref13, 3), colorFunc = _ref14[1], colorValStr = _ref14[2];\n        if (!colorFunc || !colorValStr) {\n          return;\n        }\n        var colorVals = colorValStr.split(/\\s*[,\\/\\s]\\s*/).map(function(str) {\n          return str.replace(',', '').trim();\n        }).filter(function(str) {\n          return str !== '';\n        });\n        var colorNums = colorVals.map(function(val, index) {\n          return convertColorVal(colorFunc, val, index);\n        });\n        if (colorFunc.substr(0, 3) === 'hsl') {\n          colorNums = hslToRgb(colorNums);\n        }\n        this.red = colorNums[0];\n        this.green = colorNums[1];\n        this.blue = colorNums[2];\n        this.alpha = typeof colorNums[3] === 'number' ? colorNums[3] : 1;\n      };\n      this.getRelativeLuminance = function getRelativeLuminance() {\n        var rSRGB = this.red / 255;\n        var gSRGB = this.green / 255;\n        var bSRGB = this.blue / 255;\n        var r = rSRGB <= .03928 ? rSRGB / 12.92 : Math.pow((rSRGB + .055) / 1.055, 2.4);\n        var g = gSRGB <= .03928 ? gSRGB / 12.92 : Math.pow((gSRGB + .055) / 1.055, 2.4);\n        var b = bSRGB <= .03928 ? bSRGB / 12.92 : Math.pow((bSRGB + .055) / 1.055, 2.4);\n        return .2126 * r + .7152 * g + .0722 * b;\n      };\n    }\n    var color_default = Color;\n    function getOwnBackgroundColor(elmStyle) {\n      var bgColor = new color_default();\n      bgColor.parseString(elmStyle.getPropertyValue('background-color'));\n      if (bgColor.alpha !== 0) {\n        var opacity = elmStyle.getPropertyValue('opacity');\n        bgColor.alpha = bgColor.alpha * opacity;\n      }\n      return bgColor;\n    }\n    var get_own_background_color_default = getOwnBackgroundColor;\n    function isOpaque(node) {\n      var style = window.getComputedStyle(node);\n      return element_has_image_default(node, style) || get_own_background_color_default(style).alpha === 1;\n    }\n    var is_opaque_default = isOpaque;\n    var isInternalLinkRegex = /^\\/?#[^/!]/;\n    function isSkipLink(element) {\n      if (!isInternalLinkRegex.test(element.getAttribute('href'))) {\n        return false;\n      }\n      var firstPageLink;\n      if (typeof cache_default.get('firstPageLink') !== 'undefined') {\n        firstPageLink = cache_default.get('firstPageLink');\n      } else {\n        firstPageLink = query_selector_all_default(axe._tree, 'a:not([href^=\"#\"]):not([href^=\"/#\"]):not([href^=\"javascript\"])')[0];\n        cache_default.set('firstPageLink', firstPageLink || null);\n      }\n      if (!firstPageLink) {\n        return true;\n      }\n      return element.compareDocumentPosition(firstPageLink.actualNode) === element.DOCUMENT_POSITION_FOLLOWING;\n    }\n    var is_skip_link_default = isSkipLink;\n    function reduceToElementsBelowFloating(elements, targetNode) {\n      var floatingPositions = [ 'fixed', 'sticky' ];\n      var finalElements = [];\n      var targetFound = false;\n      for (var index = 0; index < elements.length; ++index) {\n        var currentNode = elements[index];\n        if (currentNode === targetNode) {\n          targetFound = true;\n        }\n        var style = window.getComputedStyle(currentNode);\n        if (!targetFound && floatingPositions.indexOf(style.position) !== -1) {\n          finalElements = [];\n          continue;\n        }\n        finalElements.push(currentNode);\n      }\n      return finalElements;\n    }\n    var reduce_to_elements_below_floating_default = reduceToElementsBelowFloating;\n    function getScrollAncestor(node) {\n      var vNode = get_node_from_tree_default(node);\n      var ancestor = vNode.parent;\n      while (ancestor) {\n        if (get_scroll_default(ancestor.actualNode)) {\n          return ancestor.actualNode;\n        }\n        ancestor = ancestor.parent;\n      }\n    }\n    function contains2(node, parent) {\n      var rectBound = node.getBoundingClientRect();\n      var margin = .01;\n      var rect = {\n        top: rectBound.top + margin,\n        bottom: rectBound.bottom - margin,\n        left: rectBound.left + margin,\n        right: rectBound.right - margin\n      };\n      var parentRect = parent.getBoundingClientRect();\n      var parentTop = parentRect.top;\n      var parentLeft = parentRect.left;\n      var parentScrollArea = {\n        top: parentTop - parent.scrollTop,\n        bottom: parentTop - parent.scrollTop + parent.scrollHeight,\n        left: parentLeft - parent.scrollLeft,\n        right: parentLeft - parent.scrollLeft + parent.scrollWidth\n      };\n      var style = window.getComputedStyle(parent);\n      if (style.getPropertyValue('display') === 'inline') {\n        return true;\n      }\n      if (rect.left < parentScrollArea.left && rect.left < parentRect.left || rect.top < parentScrollArea.top && rect.top < parentRect.top || rect.right > parentScrollArea.right && rect.right > parentRect.right || rect.bottom > parentScrollArea.bottom && rect.bottom > parentRect.bottom) {\n        return false;\n      }\n      if (rect.right > parentRect.right || rect.bottom > parentRect.bottom) {\n        return style.overflow === 'scroll' || style.overflow === 'auto' || style.overflow === 'hidden' || parent instanceof window.HTMLBodyElement || parent instanceof window.HTMLHtmlElement;\n      }\n      return true;\n    }\n    function visuallyContains(node, parent) {\n      var parentScrollAncestor = getScrollAncestor(parent);\n      do {\n        var nextScrollAncestor = getScrollAncestor(node);\n        if (nextScrollAncestor === parentScrollAncestor || nextScrollAncestor === parent) {\n          return contains2(node, parent);\n        }\n        node = nextScrollAncestor;\n      } while (node);\n      return false;\n    }\n    var visually_contains_default = visuallyContains;\n    function shadowElementsFromPoint(nodeX, nodeY) {\n      var root = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document;\n      var i = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n      if (i > 999) {\n        throw new Error('Infinite loop detected');\n      }\n      return Array.from(root.elementsFromPoint(nodeX, nodeY) || []).filter(function(nodes) {\n        return get_root_node_default2(nodes) === root;\n      }).reduce(function(stack, elm) {\n        if (is_shadow_root_default(elm)) {\n          var shadowStack = shadowElementsFromPoint(nodeX, nodeY, elm.shadowRoot, i + 1);\n          stack = stack.concat(shadowStack);\n          if (stack.length && visually_contains_default(stack[0], elm)) {\n            stack.push(elm);\n          }\n        } else {\n          stack.push(elm);\n        }\n        return stack;\n      }, []);\n    }\n    var shadow_elements_from_point_default = shadowElementsFromPoint;\n    function urlPropsFromAttribute(node, attribute) {\n      if (!node.hasAttribute(attribute)) {\n        return void 0;\n      }\n      var nodeName2 = node.nodeName.toUpperCase();\n      var parser2 = node;\n      if (![ 'A', 'AREA' ].includes(nodeName2) || node.ownerSVGElement) {\n        parser2 = document.createElement('a');\n        parser2.href = node.getAttribute(attribute);\n      }\n      var protocol = [ 'https:', 'ftps:' ].includes(parser2.protocol) ? parser2.protocol.replace(/s:$/, ':') : parser2.protocol;\n      var parserPathname = /^\\//.test(parser2.pathname) ? parser2.pathname : '/'.concat(parser2.pathname);\n      var _getPathnameOrFilenam = getPathnameOrFilename(parserPathname), pathname = _getPathnameOrFilenam.pathname, filename = _getPathnameOrFilenam.filename;\n      return {\n        protocol: protocol,\n        hostname: parser2.hostname,\n        port: getPort(parser2.port),\n        pathname: /\\/$/.test(pathname) ? pathname : ''.concat(pathname, '/'),\n        search: getSearchPairs(parser2.search),\n        hash: getHashRoute(parser2.hash),\n        filename: filename\n      };\n    }\n    function getPort(port) {\n      var excludePorts = [ '443', '80' ];\n      return !excludePorts.includes(port) ? port : '';\n    }\n    function getPathnameOrFilename(pathname) {\n      var filename = pathname.split('/').pop();\n      if (!filename || filename.indexOf('.') === -1) {\n        return {\n          pathname: pathname,\n          filename: ''\n        };\n      }\n      return {\n        pathname: pathname.replace(filename, ''),\n        filename: /index./.test(filename) ? '' : filename\n      };\n    }\n    function getSearchPairs(searchStr) {\n      var query = {};\n      if (!searchStr || !searchStr.length) {\n        return query;\n      }\n      var pairs = searchStr.substring(1).split('&');\n      if (!pairs || !pairs.length) {\n        return query;\n      }\n      for (var index = 0; index < pairs.length; index++) {\n        var pair = pairs[index];\n        var _pair$split = pair.split('='), _pair$split2 = _slicedToArray(_pair$split, 2), key = _pair$split2[0], _pair$split2$ = _pair$split2[1], value = _pair$split2$ === void 0 ? '' : _pair$split2$;\n        query[decodeURIComponent(key)] = decodeURIComponent(value);\n      }\n      return query;\n    }\n    function getHashRoute(hash) {\n      if (!hash) {\n        return '';\n      }\n      var hashRegex = /#!?\\/?/g;\n      var hasMatch = hash.match(hashRegex);\n      if (!hasMatch) {\n        return '';\n      }\n      var _hasMatch = _slicedToArray(hasMatch, 1), matchedStr = _hasMatch[0];\n      if (matchedStr === '#') {\n        return '';\n      }\n      return hash;\n    }\n    var url_props_from_attribute_default = urlPropsFromAttribute;\n    function visuallyOverlaps(rect, parent) {\n      var parentRect = parent.getBoundingClientRect();\n      var parentTop = parentRect.top;\n      var parentLeft = parentRect.left;\n      var parentScrollArea = {\n        top: parentTop - parent.scrollTop,\n        bottom: parentTop - parent.scrollTop + parent.scrollHeight,\n        left: parentLeft - parent.scrollLeft,\n        right: parentLeft - parent.scrollLeft + parent.scrollWidth\n      };\n      if (rect.left > parentScrollArea.right && rect.left > parentRect.right || rect.top > parentScrollArea.bottom && rect.top > parentRect.bottom || rect.right < parentScrollArea.left && rect.right < parentRect.left || rect.bottom < parentScrollArea.top && rect.bottom < parentRect.top) {\n        return false;\n      }\n      var style = window.getComputedStyle(parent);\n      if (rect.left > parentRect.right || rect.top > parentRect.bottom) {\n        return style.overflow === 'scroll' || style.overflow === 'auto' || parent instanceof window.HTMLBodyElement || parent instanceof window.HTMLHtmlElement;\n      }\n      return true;\n    }\n    var visually_overlaps_default = visuallyOverlaps;\n    var isXHTMLGlobal;\n    var VirtualNode = function(_abstract_virtual_nod) {\n      _inherits(VirtualNode, _abstract_virtual_nod);\n      var _super = _createSuper(VirtualNode);\n      function VirtualNode(node, parent, shadowId) {\n        var _this;\n        _classCallCheck(this, VirtualNode);\n        _this = _super.call(this);\n        _this.shadowId = shadowId;\n        _this.children = [];\n        _this.actualNode = node;\n        _this.parent = parent;\n        _this._isHidden = null;\n        _this._cache = {};\n        if (typeof isXHTMLGlobal === 'undefined') {\n          isXHTMLGlobal = is_xhtml_default(node.ownerDocument);\n        }\n        _this._isXHTML = isXHTMLGlobal;\n        if (node.nodeName.toLowerCase() === 'input') {\n          var type = node.getAttribute('type');\n          type = _this._isXHTML ? type : (type || '').toLowerCase();\n          if (!valid_input_type_default().includes(type)) {\n            type = 'text';\n          }\n          _this._type = type;\n        }\n        if (cache_default.get('nodeMap')) {\n          cache_default.get('nodeMap').set(node, _assertThisInitialized(_this));\n        }\n        return _this;\n      }\n      _createClass(VirtualNode, [ {\n        key: 'attr',\n        value: function attr(attrName) {\n          if (typeof this.actualNode.getAttribute !== 'function') {\n            return null;\n          }\n          return this.actualNode.getAttribute(attrName);\n        }\n      }, {\n        key: 'hasAttr',\n        value: function hasAttr(attrName) {\n          if (typeof this.actualNode.hasAttribute !== 'function') {\n            return false;\n          }\n          return this.actualNode.hasAttribute(attrName);\n        }\n      }, {\n        key: 'getComputedStylePropertyValue',\n        value: function getComputedStylePropertyValue(property) {\n          var key = 'computedStyle_' + property;\n          if (!this._cache.hasOwnProperty(key)) {\n            if (!this._cache.hasOwnProperty('computedStyle')) {\n              this._cache.computedStyle = window.getComputedStyle(this.actualNode);\n            }\n            this._cache[key] = this._cache.computedStyle.getPropertyValue(property);\n          }\n          return this._cache[key];\n        }\n      }, {\n        key: 'props',\n        get: function get() {\n          var _this$actualNode = this.actualNode, nodeType = _this$actualNode.nodeType, nodeName2 = _this$actualNode.nodeName, id = _this$actualNode.id, multiple = _this$actualNode.multiple, nodeValue = _this$actualNode.nodeValue, value = _this$actualNode.value;\n          return {\n            nodeType: nodeType,\n            nodeName: this._isXHTML ? nodeName2 : nodeName2.toLowerCase(),\n            id: id,\n            type: this._type,\n            multiple: multiple,\n            nodeValue: nodeValue,\n            value: value\n          };\n        }\n      }, {\n        key: 'attrNames',\n        get: function get() {\n          if (!this._cache.hasOwnProperty('attrNames')) {\n            var attrs;\n            if (this.actualNode.attributes instanceof window.NamedNodeMap) {\n              attrs = this.actualNode.attributes;\n            } else {\n              attrs = this.actualNode.cloneNode(false).attributes;\n            }\n            this._cache.attrNames = Array.from(attrs).map(function(attr) {\n              return attr.name;\n            });\n          }\n          return this._cache.attrNames;\n        }\n      }, {\n        key: 'isFocusable',\n        get: function get() {\n          if (!this._cache.hasOwnProperty('isFocusable')) {\n            this._cache.isFocusable = is_focusable_default(this.actualNode);\n          }\n          return this._cache.isFocusable;\n        }\n      }, {\n        key: 'tabbableElements',\n        get: function get() {\n          if (!this._cache.hasOwnProperty('tabbableElements')) {\n            this._cache.tabbableElements = get_tabbable_elements_default(this);\n          }\n          return this._cache.tabbableElements;\n        }\n      }, {\n        key: 'clientRects',\n        get: function get() {\n          if (!this._cache.hasOwnProperty('clientRects')) {\n            this._cache.clientRects = Array.from(this.actualNode.getClientRects()).filter(function(rect) {\n              return rect.width > 0;\n            });\n          }\n          return this._cache.clientRects;\n        }\n      }, {\n        key: 'boundingClientRect',\n        get: function get() {\n          if (!this._cache.hasOwnProperty('boundingClientRect')) {\n            this._cache.boundingClientRect = this.actualNode.getBoundingClientRect();\n          }\n          return this._cache.boundingClientRect;\n        }\n      } ]);\n      return VirtualNode;\n    }(abstract_virtual_node_default);\n    var virtual_node_default = VirtualNode;\n    function getSlotChildren(node) {\n      var retVal = [];\n      node = node.firstChild;\n      while (node) {\n        retVal.push(node);\n        node = node.nextSibling;\n      }\n      return retVal;\n    }\n    function flattenTree(node, shadowId, parent) {\n      var retVal, realArray, nodeName2;\n      function reduceShadowDOM(res, child, parent2) {\n        var replacements = flattenTree(child, shadowId, parent2);\n        if (replacements) {\n          res = res.concat(replacements);\n        }\n        return res;\n      }\n      if (node.documentElement) {\n        node = node.documentElement;\n      }\n      nodeName2 = node.nodeName.toLowerCase();\n      if (is_shadow_root_default(node)) {\n        retVal = new virtual_node_default(node, parent, shadowId);\n        shadowId = 'a' + Math.random().toString().substring(2);\n        realArray = Array.from(node.shadowRoot.childNodes);\n        retVal.children = realArray.reduce(function(res, child) {\n          return reduceShadowDOM(res, child, retVal);\n        }, []);\n        return [ retVal ];\n      } else {\n        if (nodeName2 === 'content' && typeof node.getDistributedNodes === 'function') {\n          realArray = Array.from(node.getDistributedNodes());\n          return realArray.reduce(function(res, child) {\n            return reduceShadowDOM(res, child, parent);\n          }, []);\n        } else if (nodeName2 === 'slot' && typeof node.assignedNodes === 'function') {\n          realArray = Array.from(node.assignedNodes());\n          if (!realArray.length) {\n            realArray = getSlotChildren(node);\n          }\n          var styl = window.getComputedStyle(node);\n          if (false) {\n            retVal = new virtual_node_default(node, parent, shadowId);\n            retVal.children = realArray.reduce(function(res, child) {\n              return reduceShadowDOM(res, child, retVal);\n            }, []);\n            return [ retVal ];\n          } else {\n            return realArray.reduce(function(res, child) {\n              return reduceShadowDOM(res, child, parent);\n            }, []);\n          }\n        } else {\n          if (node.nodeType === 1) {\n            retVal = new virtual_node_default(node, parent, shadowId);\n            realArray = Array.from(node.childNodes);\n            retVal.children = realArray.reduce(function(res, child) {\n              return reduceShadowDOM(res, child, retVal);\n            }, []);\n            return [ retVal ];\n          } else if (node.nodeType === 3) {\n            return [ new virtual_node_default(node, parent) ];\n          }\n          return void 0;\n        }\n      }\n    }\n    function getFlattenedTree() {\n      var node = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.documentElement;\n      var shadowId = arguments.length > 1 ? arguments[1] : undefined;\n      cache_default.set('nodeMap', new WeakMap());\n      return flattenTree(node, shadowId, null);\n    }\n    var get_flattened_tree_default = getFlattenedTree;\n    function getBaseLang(lang) {\n      if (!lang) {\n        return '';\n      }\n      return lang.trim().split('-')[0].toLowerCase();\n    }\n    var get_base_lang_default = getBaseLang;\n    function failureSummary(nodeData) {\n      var failingChecks = {};\n      failingChecks.none = nodeData.none.concat(nodeData.all);\n      failingChecks.any = nodeData.any;\n      return Object.keys(failingChecks).map(function(key) {\n        if (!failingChecks[key].length) {\n          return;\n        }\n        var sum = axe._audit.data.failureSummaries[key];\n        if (sum && typeof sum.failureMessage === 'function') {\n          return sum.failureMessage(failingChecks[key].map(function(check4) {\n            return check4.message || '';\n          }));\n        }\n      }).filter(function(i) {\n        return i !== void 0;\n      }).join('\\n\\n');\n    }\n    var failure_summary_default = failureSummary;\n    function getEnvironmentData() {\n      var win = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;\n      var _win$screen = win.screen, screen = _win$screen === void 0 ? {} : _win$screen, _win$navigator = win.navigator, navigator = _win$navigator === void 0 ? {} : _win$navigator, _win$location = win.location, location = _win$location === void 0 ? {} : _win$location, innerHeight = win.innerHeight, innerWidth = win.innerWidth;\n      var orientation = screen.msOrientation || screen.orientation || screen.mozOrientation || {};\n      return {\n        testEngine: {\n          name: 'axe-core',\n          version: axe.version\n        },\n        testRunner: {\n          name: axe._audit.brand\n        },\n        testEnvironment: {\n          userAgent: navigator.userAgent,\n          windowWidth: innerWidth,\n          windowHeight: innerHeight,\n          orientationAngle: orientation.angle,\n          orientationType: orientation.type\n        },\n        timestamp: new Date().toISOString(),\n        url: location.href\n      };\n    }\n    var get_environment_data_default = getEnvironmentData;\n    function incompleteFallbackMessage() {\n      return typeof axe._audit.data.incompleteFallbackMessage === 'function' ? axe._audit.data.incompleteFallbackMessage() : axe._audit.data.incompleteFallbackMessage;\n    }\n    var incomplete_fallback_msg_default = incompleteFallbackMessage;\n    function normalizeRelatedNodes(node, options) {\n      [ 'any', 'all', 'none' ].forEach(function(type) {\n        if (!Array.isArray(node[type])) {\n          return;\n        }\n        node[type].filter(function(checkRes) {\n          return Array.isArray(checkRes.relatedNodes);\n        }).forEach(function(checkRes) {\n          checkRes.relatedNodes = checkRes.relatedNodes.map(function(relatedNode) {\n            var res = {\n              html: relatedNode.source\n            };\n            if (options.elementRef && !relatedNode.fromFrame) {\n              res.element = relatedNode.element;\n            }\n            if (options.selectors !== false || relatedNode.fromFrame) {\n              res.target = relatedNode.selector;\n            }\n            if (options.ancestry) {\n              res.ancestry = relatedNode.ancestry;\n            }\n            if (options.xpath) {\n              res.xpath = relatedNode.xpath;\n            }\n            return res;\n          });\n        });\n      });\n    }\n    var resultKeys = constants_default.resultGroups;\n    function processAggregate(results, options) {\n      var resultObject = axe.utils.aggregateResult(results);\n      resultKeys.forEach(function(key) {\n        if (options.resultTypes && !options.resultTypes.includes(key)) {\n          (resultObject[key] || []).forEach(function(ruleResult) {\n            if (Array.isArray(ruleResult.nodes) && ruleResult.nodes.length > 0) {\n              ruleResult.nodes = [ ruleResult.nodes[0] ];\n            }\n          });\n        }\n        resultObject[key] = (resultObject[key] || []).map(function(ruleResult) {\n          ruleResult = Object.assign({}, ruleResult);\n          if (Array.isArray(ruleResult.nodes) && ruleResult.nodes.length > 0) {\n            ruleResult.nodes = ruleResult.nodes.map(function(subResult) {\n              if (_typeof(subResult.node) === 'object') {\n                subResult.html = subResult.node.source;\n                if (options.elementRef && !subResult.node.fromFrame) {\n                  subResult.element = subResult.node.element;\n                }\n                if (options.selectors !== false || subResult.node.fromFrame) {\n                  subResult.target = subResult.node.selector;\n                }\n                if (options.ancestry) {\n                  subResult.ancestry = subResult.node.ancestry;\n                }\n                if (options.xpath) {\n                  subResult.xpath = subResult.node.xpath;\n                }\n              }\n              delete subResult.result;\n              delete subResult.node;\n              normalizeRelatedNodes(subResult, options);\n              return subResult;\n            });\n          }\n          resultKeys.forEach(function(key2) {\n            return delete ruleResult[key2];\n          });\n          delete ruleResult.pageLevel;\n          delete ruleResult.result;\n          return ruleResult;\n        });\n      });\n      return resultObject;\n    }\n    var process_aggregate_default = processAggregate;\n    axe._thisWillBeDeletedDoNotUse = axe._thisWillBeDeletedDoNotUse || {};\n    axe._thisWillBeDeletedDoNotUse.helpers = {\n      failureSummary: failure_summary_default,\n      getEnvironmentData: get_environment_data_default,\n      incompleteFallbackMessage: incomplete_fallback_msg_default,\n      processAggregate: process_aggregate_default\n    };\n    var dataRegex = /\\$\\{\\s?data\\s?\\}/g;\n    function substitute(str, data2) {\n      if (typeof data2 === 'string') {\n        return str.replace(dataRegex, data2);\n      }\n      for (var prop in data2) {\n        if (data2.hasOwnProperty(prop)) {\n          var regex = new RegExp('\\\\${\\\\s?data\\\\.' + prop + '\\\\s?}', 'g');\n          var replace = typeof data2[prop] === 'undefined' ? '' : String(data2[prop]);\n          str = str.replace(regex, replace);\n        }\n      }\n      return str;\n    }\n    function processMessage(message, data2) {\n      if (!message) {\n        return;\n      }\n      if (Array.isArray(data2)) {\n        data2.values = data2.join(', ');\n        if (typeof message.singular === 'string' && typeof message.plural === 'string') {\n          var str2 = data2.length === 1 ? message.singular : message.plural;\n          return substitute(str2, data2);\n        }\n        return substitute(message, data2);\n      }\n      if (typeof message === 'string') {\n        return substitute(message, data2);\n      }\n      if (typeof data2 === 'string') {\n        var _str = message[data2];\n        return substitute(_str, data2);\n      }\n      var str = message['default'] || incomplete_fallback_msg_default();\n      if (data2 && data2.messageKey && message[data2.messageKey]) {\n        str = message[data2.messageKey];\n      }\n      return processMessage(str, data2);\n    }\n    var process_message_default = processMessage;\n    function getCheckMessage(checkId, type, data2) {\n      var check4 = axe._audit.data.checks[checkId];\n      if (!check4) {\n        throw new Error('Cannot get message for unknown check: '.concat(checkId, '.'));\n      }\n      if (!check4.messages[type]) {\n        throw new Error('Check \"'.concat(checkId, '\"\" does not have a \"').concat(type, '\" message.'));\n      }\n      return process_message_default(check4.messages[type], data2);\n    }\n    var get_check_message_default = getCheckMessage;\n    function getCheckOption(check4, ruleID, options) {\n      var ruleCheckOption = ((options.rules && options.rules[ruleID] || {}).checks || {})[check4.id];\n      var checkOption = (options.checks || {})[check4.id];\n      var enabled = check4.enabled;\n      var opts = check4.options;\n      if (checkOption) {\n        if (checkOption.hasOwnProperty('enabled')) {\n          enabled = checkOption.enabled;\n        }\n        if (checkOption.hasOwnProperty('options')) {\n          opts = checkOption.options;\n        }\n      }\n      if (ruleCheckOption) {\n        if (ruleCheckOption.hasOwnProperty('enabled')) {\n          enabled = ruleCheckOption.enabled;\n        }\n        if (ruleCheckOption.hasOwnProperty('options')) {\n          opts = ruleCheckOption.options;\n        }\n      }\n      return {\n        enabled: enabled,\n        options: opts,\n        absolutePaths: options.absolutePaths\n      };\n    }\n    var get_check_option_default = getCheckOption;\n    function getNodeFromTree(vNode, node) {\n      var el = node || vNode;\n      return cache_default.get('nodeMap') ? cache_default.get('nodeMap').get(el) : null;\n    }\n    var get_node_from_tree_default = getNodeFromTree;\n    function getRule(ruleId) {\n      var rule3 = axe._audit.rules.find(function(rule4) {\n        return rule4.id === ruleId;\n      });\n      if (!rule3) {\n        throw new Error('Cannot find rule by id: '.concat(ruleId));\n      }\n      return rule3;\n    }\n    var get_rule_default = getRule;\n    function getScroll(elm) {\n      var buffer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n      var overflowX = elm.scrollWidth > elm.clientWidth + buffer;\n      var overflowY = elm.scrollHeight > elm.clientHeight + buffer;\n      if (!(overflowX || overflowY)) {\n        return;\n      }\n      var style = window.getComputedStyle(elm);\n      var overflowXStyle = style.getPropertyValue('overflow-x');\n      var overflowYStyle = style.getPropertyValue('overflow-y');\n      var scrollableX = overflowXStyle !== 'visible' && overflowXStyle !== 'hidden';\n      var scrollableY = overflowYStyle !== 'visible' && overflowYStyle !== 'hidden';\n      if (overflowX && scrollableX || overflowY && scrollableY) {\n        return {\n          elm: elm,\n          top: elm.scrollTop,\n          left: elm.scrollLeft\n        };\n      }\n    }\n    var get_scroll_default = getScroll;\n    function getElmScrollRecursive(root) {\n      return Array.from(root.children || root.childNodes || []).reduce(function(scrolls, elm) {\n        var scroll = get_scroll_default(elm);\n        if (scroll) {\n          scrolls.push(scroll);\n        }\n        return scrolls.concat(getElmScrollRecursive(elm));\n      }, []);\n    }\n    function getScrollState() {\n      var win = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;\n      var root = win.document.documentElement;\n      var windowScroll = [ win.pageXOffset !== void 0 ? {\n        elm: win,\n        top: win.pageYOffset,\n        left: win.pageXOffset\n      } : {\n        elm: root,\n        top: root.scrollTop,\n        left: root.scrollLeft\n      } ];\n      return windowScroll.concat(getElmScrollRecursive(document.body));\n    }\n    var get_scroll_state_default = getScrollState;\n    function _getStandards() {\n      return clone_default(standards_default);\n    }\n    function getStyleSheetFactory(dynamicDoc) {\n      if (!dynamicDoc) {\n        throw new Error('axe.utils.getStyleSheetFactory should be invoked with an argument');\n      }\n      return function(options) {\n        var data2 = options.data, _options$isCrossOrigi = options.isCrossOrigin, isCrossOrigin = _options$isCrossOrigi === void 0 ? false : _options$isCrossOrigi, shadowId = options.shadowId, root = options.root, priority = options.priority, _options$isLink = options.isLink, isLink = _options$isLink === void 0 ? false : _options$isLink;\n        var style = dynamicDoc.createElement('style');\n        if (isLink) {\n          var text32 = dynamicDoc.createTextNode('@import \"'.concat(data2.href, '\"'));\n          style.appendChild(text32);\n        } else {\n          style.appendChild(dynamicDoc.createTextNode(data2));\n        }\n        dynamicDoc.head.appendChild(style);\n        return {\n          sheet: style.sheet,\n          isCrossOrigin: isCrossOrigin,\n          shadowId: shadowId,\n          root: root,\n          priority: priority\n        };\n      };\n    }\n    var get_stylesheet_factory_default = getStyleSheetFactory;\n    var styleSheet;\n    function injectStyle(style) {\n      if (styleSheet && styleSheet.parentNode) {\n        if (styleSheet.styleSheet === void 0) {\n          styleSheet.appendChild(document.createTextNode(style));\n        } else {\n          styleSheet.styleSheet.cssText += style;\n        }\n        return styleSheet;\n      }\n      if (!style) {\n        return;\n      }\n      var head = document.head || document.getElementsByTagName('head')[0];\n      styleSheet = document.createElement('style');\n      styleSheet.type = 'text/css';\n      if (styleSheet.styleSheet === void 0) {\n        styleSheet.appendChild(document.createTextNode(style));\n      } else {\n        styleSheet.styleSheet.cssText = style;\n      }\n      head.appendChild(styleSheet);\n      return styleSheet;\n    }\n    var inject_style_default = injectStyle;\n    function isHidden(el, recursed) {\n      var node = get_node_from_tree_default(el);\n      if (el.nodeType === 9) {\n        return false;\n      }\n      if (el.nodeType === 11) {\n        el = el.host;\n      }\n      if (node && node._isHidden !== null) {\n        return node._isHidden;\n      }\n      var style = window.getComputedStyle(el, null);\n      if (!style || !el.parentNode || style.getPropertyValue('display') === 'none' || !recursed && style.getPropertyValue('visibility') === 'hidden' || el.getAttribute('aria-hidden') === 'true') {\n        return true;\n      }\n      var parent = el.assignedSlot ? el.assignedSlot : el.parentNode;\n      var hidden = isHidden(parent, true);\n      if (node) {\n        node._isHidden = hidden;\n      }\n      return hidden;\n    }\n    var is_hidden_default = isHidden;\n    var htmlTags = [ 'a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'math', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rb', 'rp', 'rt', 'rtc', 'ruby', 's', 'samp', 'script', 'section', 'select', 'slot', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'svg', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr' ];\n    function isHtmlElement(node) {\n      if (node.namespaceURI === 'http://www.w3.org/2000/svg') {\n        return false;\n      }\n      return htmlTags.includes(node.nodeName.toLowerCase());\n    }\n    var is_html_element_default = isHtmlElement;\n    function getDeepest(collection) {\n      return collection.sort(function(a, b) {\n        if (contains_default(a, b)) {\n          return 1;\n        }\n        return -1;\n      })[0];\n    }\n    function isNodeInContext(node, context3) {\n      var include = context3.include && getDeepest(context3.include.filter(function(candidate) {\n        return contains_default(candidate, node);\n      }));\n      var exclude = context3.exclude && getDeepest(context3.exclude.filter(function(candidate) {\n        return contains_default(candidate, node);\n      }));\n      if (!exclude && include || exclude && contains_default(exclude, include)) {\n        return true;\n      }\n      return false;\n    }\n    var is_node_in_context_default = isNodeInContext;\n    var memoizee = __toModule(require_memoizee());\n    axe._memoizedFns = [];\n    function memoizeImplementation(fn) {\n      var memoized = memoizee['default'](fn);\n      axe._memoizedFns.push(memoized);\n      return memoized;\n    }\n    var memoize_default = memoizeImplementation;\n    function parseSameOriginStylesheet(sheet, options, priority, importedUrls) {\n      var isCrossOrigin = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n      var rules = Array.from(sheet.cssRules);\n      if (!rules) {\n        return Promise.resolve();\n      }\n      var cssImportRules = rules.filter(function(r) {\n        return r.type === 3;\n      });\n      if (!cssImportRules.length) {\n        return Promise.resolve({\n          isCrossOrigin: isCrossOrigin,\n          priority: priority,\n          root: options.rootNode,\n          shadowId: options.shadowId,\n          sheet: sheet\n        });\n      }\n      var cssImportUrlsNotAlreadyImported = cssImportRules.filter(function(rule3) {\n        return rule3.href;\n      }).map(function(rule3) {\n        return rule3.href;\n      }).filter(function(url) {\n        return !importedUrls.includes(url);\n      });\n      var promises = cssImportUrlsNotAlreadyImported.map(function(importUrl, cssRuleIndex) {\n        var newPriority = [].concat(_toConsumableArray(priority), [ cssRuleIndex ]);\n        var isCrossOriginRequest = /^https?:\\/\\/|^\\/\\//i.test(importUrl);\n        return parse_crossorigin_stylesheet_default(importUrl, options, newPriority, importedUrls, isCrossOriginRequest);\n      });\n      var nonImportCSSRules = rules.filter(function(r) {\n        return r.type !== 3;\n      });\n      if (!nonImportCSSRules.length) {\n        return Promise.all(promises);\n      }\n      promises.push(Promise.resolve(options.convertDataToStylesheet({\n        data: nonImportCSSRules.map(function(rule3) {\n          return rule3.cssText;\n        }).join(),\n        isCrossOrigin: isCrossOrigin,\n        priority: priority,\n        root: options.rootNode,\n        shadowId: options.shadowId\n      })));\n      return Promise.all(promises);\n    }\n    var parse_sameorigin_stylesheet_default = parseSameOriginStylesheet;\n    function parseStylesheet(sheet, options, priority, importedUrls) {\n      var isCrossOrigin = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n      var isSameOrigin = isSameOriginStylesheet(sheet);\n      if (isSameOrigin) {\n        return parse_sameorigin_stylesheet_default(sheet, options, priority, importedUrls, isCrossOrigin);\n      }\n      return parse_crossorigin_stylesheet_default(sheet.href, options, priority, importedUrls, true);\n    }\n    function isSameOriginStylesheet(sheet) {\n      try {\n        var rules = sheet.cssRules;\n        if (!rules && sheet.href) {\n          return false;\n        }\n        return true;\n      } catch (e) {\n        return false;\n      }\n    }\n    var parse_stylesheet_default = parseStylesheet;\n    function parseCrossOriginStylesheet(url, options, priority, importedUrls, isCrossOrigin) {\n      importedUrls.push(url);\n      return new Promise(function(resolve, reject) {\n        var request = new XMLHttpRequest();\n        request.open('GET', url);\n        request.timeout = constants_default.preload.timeout;\n        request.addEventListener('error', reject);\n        request.addEventListener('timeout', reject);\n        request.addEventListener('loadend', function(event) {\n          if (event.loaded && request.responseText) {\n            return resolve(request.responseText);\n          }\n          reject(request.responseText);\n        });\n        request.send();\n      }).then(function(data2) {\n        var result = options.convertDataToStylesheet({\n          data: data2,\n          isCrossOrigin: isCrossOrigin,\n          priority: priority,\n          root: options.rootNode,\n          shadowId: options.shadowId\n        });\n        return parse_stylesheet_default(result.sheet, options, priority, importedUrls, result.isCrossOrigin);\n      });\n    }\n    var parse_crossorigin_stylesheet_default = parseCrossOriginStylesheet;\n    var performanceTimer = function() {\n      function now() {\n        if (window.performance && window.performance) {\n          return window.performance.now();\n        }\n      }\n      var originalTime = null;\n      var lastRecordedTime = now();\n      return {\n        start: function start() {\n          this.mark('mark_axe_start');\n        },\n        end: function end() {\n          this.mark('mark_axe_end');\n          this.measure('axe', 'mark_axe_start', 'mark_axe_end');\n          this.logMeasures('axe');\n        },\n        auditStart: function auditStart() {\n          this.mark('mark_audit_start');\n        },\n        auditEnd: function auditEnd() {\n          this.mark('mark_audit_end');\n          this.measure('audit_start_to_end', 'mark_audit_start', 'mark_audit_end');\n          this.logMeasures();\n        },\n        mark: function mark(markName) {\n          if (window.performance && window.performance.mark !== void 0) {\n            window.performance.mark(markName);\n          }\n        },\n        measure: function measure(measureName, startMark, endMark) {\n          if (window.performance && window.performance.measure !== void 0) {\n            window.performance.measure(measureName, startMark, endMark);\n          }\n        },\n        logMeasures: function logMeasures(measureName) {\n          function logMeasure(req2) {\n            log_default('Measure ' + req2.name + ' took ' + req2.duration + 'ms');\n          }\n          if (window.performance && window.performance.getEntriesByType !== void 0) {\n            var axeStart = window.performance.getEntriesByName('mark_axe_start')[0];\n            var measures = window.performance.getEntriesByType('measure').filter(function(measure) {\n              return measure.startTime >= axeStart.startTime;\n            });\n            for (var i = 0; i < measures.length; ++i) {\n              var req = measures[i];\n              if (req.name === measureName) {\n                logMeasure(req);\n                return;\n              }\n              logMeasure(req);\n            }\n          }\n        },\n        timeElapsed: function timeElapsed() {\n          return now() - lastRecordedTime;\n        },\n        reset: function reset() {\n          if (!originalTime) {\n            originalTime = now();\n          }\n          lastRecordedTime = now();\n        }\n      };\n    }();\n    var performance_timer_default = performanceTimer;\n    if (typeof Object.assign !== 'function') {\n      (function() {\n        Object.assign = function(target) {\n          if (target === void 0 || target === null) {\n            throw new TypeError('Cannot convert undefined or null to object');\n          }\n          var output = Object(target);\n          for (var index = 1; index < arguments.length; index++) {\n            var source = arguments[index];\n            if (source !== void 0 && source !== null) {\n              for (var nextKey in source) {\n                if (source.hasOwnProperty(nextKey)) {\n                  output[nextKey] = source[nextKey];\n                }\n              }\n            }\n          }\n          return output;\n        };\n      })();\n    }\n    if (!Array.prototype.find) {\n      Object.defineProperty(Array.prototype, 'find', {\n        value: function value(predicate) {\n          if (this === null) {\n            throw new TypeError('Array.prototype.find called on null or undefined');\n          }\n          if (typeof predicate !== 'function') {\n            throw new TypeError('predicate must be a function');\n          }\n          var list = Object(this);\n          var length = list.length >>> 0;\n          var thisArg = arguments[1];\n          var value;\n          for (var i = 0; i < length; i++) {\n            value = list[i];\n            if (predicate.call(thisArg, value, i, list)) {\n              return value;\n            }\n          }\n          return void 0;\n        }\n      });\n    }\n    function _pollyfillElementsFromPoint() {\n      if (document.elementsFromPoint) {\n        return document.elementsFromPoint;\n      }\n      if (document.msElementsFromPoint) {\n        return document.msElementsFromPoint;\n      }\n      var usePointer = function() {\n        var element = document.createElement('x');\n        element.style.cssText = 'pointer-events:auto';\n        return element.style.pointerEvents === 'auto';\n      }();\n      var cssProp = usePointer ? 'pointer-events' : 'visibility';\n      var cssDisableVal = usePointer ? 'none' : 'hidden';\n      var style = document.createElement('style');\n      style.innerHTML = usePointer ? '* { pointer-events: all }' : '* { visibility: visible }';\n      return function(x, y) {\n        var current, i, d;\n        var elements = [];\n        var previousPointerEvents = [];\n        document.head.appendChild(style);\n        while ((current = document.elementFromPoint(x, y)) && elements.indexOf(current) === -1) {\n          elements.push(current);\n          previousPointerEvents.push({\n            value: current.style.getPropertyValue(cssProp),\n            priority: current.style.getPropertyPriority(cssProp)\n          });\n          current.style.setProperty(cssProp, cssDisableVal, 'important');\n        }\n        if (elements.indexOf(document.documentElement) < elements.length - 1) {\n          elements.splice(elements.indexOf(document.documentElement), 1);\n          elements.push(document.documentElement);\n        }\n        for (i = previousPointerEvents.length; !!(d = previousPointerEvents[--i]); ) {\n          elements[i].style.setProperty(cssProp, d.value ? d.value : '', d.priority);\n        }\n        document.head.removeChild(style);\n        return elements;\n      };\n    }\n    if (typeof window.addEventListener === 'function') {\n      document.elementsFromPoint = _pollyfillElementsFromPoint();\n    }\n    if (!Array.prototype.includes) {\n      Object.defineProperty(Array.prototype, 'includes', {\n        value: function value(searchElement) {\n          var O = Object(this);\n          var len = parseInt(O.length, 10) || 0;\n          if (len === 0) {\n            return false;\n          }\n          var n = parseInt(arguments[1], 10) || 0;\n          var k;\n          if (n >= 0) {\n            k = n;\n          } else {\n            k = len + n;\n            if (k < 0) {\n              k = 0;\n            }\n          }\n          var currentElement;\n          while (k < len) {\n            currentElement = O[k];\n            if (searchElement === currentElement || searchElement !== searchElement && currentElement !== currentElement) {\n              return true;\n            }\n            k++;\n          }\n          return false;\n        }\n      });\n    }\n    if (!Array.prototype.some) {\n      Object.defineProperty(Array.prototype, 'some', {\n        value: function value(fun) {\n          if (this == null) {\n            throw new TypeError('Array.prototype.some called on null or undefined');\n          }\n          if (typeof fun !== 'function') {\n            throw new TypeError();\n          }\n          var t = Object(this);\n          var len = t.length >>> 0;\n          var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\n          for (var i = 0; i < len; i++) {\n            if (i in t && fun.call(thisArg, t[i], i, t)) {\n              return true;\n            }\n          }\n          return false;\n        }\n      });\n    }\n    if (!Array.from) {\n      Object.defineProperty(Array, 'from', {\n        value: function() {\n          var toStr = Object.prototype.toString;\n          var isCallable = function isCallable(fn) {\n            return typeof fn === 'function' || toStr.call(fn) === '[object Function]';\n          };\n          var toInteger = function toInteger(value) {\n            var number = Number(value);\n            if (isNaN(number)) {\n              return 0;\n            }\n            if (number === 0 || !isFinite(number)) {\n              return number;\n            }\n            return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n          };\n          var maxSafeInteger = Math.pow(2, 53) - 1;\n          var toLength = function toLength(value) {\n            var len = toInteger(value);\n            return Math.min(Math.max(len, 0), maxSafeInteger);\n          };\n          return function from(arrayLike) {\n            var C = this;\n            var items = Object(arrayLike);\n            if (arrayLike == null) {\n              throw new TypeError('Array.from requires an array-like object - not null or undefined');\n            }\n            var mapFn = arguments.length > 1 ? arguments[1] : void 0;\n            var T;\n            if (typeof mapFn !== 'undefined') {\n              if (!isCallable(mapFn)) {\n                throw new TypeError('Array.from: when provided, the second argument must be a function');\n              }\n              if (arguments.length > 2) {\n                T = arguments[2];\n              }\n            }\n            var len = toLength(items.length);\n            var A = isCallable(C) ? Object(new C(len)) : new Array(len);\n            var k = 0;\n            var kValue;\n            while (k < len) {\n              kValue = items[k];\n              if (mapFn) {\n                A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\n              } else {\n                A[k] = kValue;\n              }\n              k += 1;\n            }\n            A.length = len;\n            return A;\n          };\n        }()\n      });\n    }\n    if (!String.prototype.includes) {\n      String.prototype.includes = function(search, start) {\n        if (typeof start !== 'number') {\n          start = 0;\n        }\n        if (start + search.length > this.length) {\n          return false;\n        } else {\n          return this.indexOf(search, start) !== -1;\n        }\n      };\n    }\n    function uniqueArray(arr1, arr2) {\n      return arr1.concat(arr2).filter(function(elem, pos, arr) {\n        return arr.indexOf(elem) === pos;\n      });\n    }\n    var unique_array_default = uniqueArray;\n    function createLocalVariables(vNodes, anyLevel, thisLevel, parentShadowId) {\n      var retVal = {\n        vNodes: vNodes.slice(),\n        anyLevel: anyLevel,\n        thisLevel: thisLevel,\n        parentShadowId: parentShadowId\n      };\n      retVal.vNodes.reverse();\n      return retVal;\n    }\n    function matchExpressions(domTree, expressions, filter) {\n      var stack = [];\n      var vNodes = Array.isArray(domTree) ? domTree : [ domTree ];\n      var currentLevel = createLocalVariables(vNodes, expressions, [], domTree[0].shadowId);\n      var result = [];\n      while (currentLevel.vNodes.length) {\n        var vNode = currentLevel.vNodes.pop();\n        var childOnly = [];\n        var childAny = [];\n        var combined = currentLevel.anyLevel.slice().concat(currentLevel.thisLevel);\n        var added = false;\n        for (var _i7 = 0; _i7 < combined.length; _i7++) {\n          var exp = combined[_i7];\n          if ((!exp[0].id || vNode.shadowId === currentLevel.parentShadowId) && _matchesExpression(vNode, exp[0])) {\n            if (exp.length === 1) {\n              if (!added && (!filter || filter(vNode))) {\n                result.push(vNode);\n                added = true;\n              }\n            } else {\n              var rest = exp.slice(1);\n              if ([ ' ', '>' ].includes(rest[0].combinator) === false) {\n                throw new Error('axe.utils.querySelectorAll does not support the combinator: ' + exp[1].combinator);\n              }\n              if (rest[0].combinator === '>') {\n                childOnly.push(rest);\n              } else {\n                childAny.push(rest);\n              }\n            }\n          }\n          if ((!exp[0].id || vNode.shadowId === currentLevel.parentShadowId) && currentLevel.anyLevel.includes(exp)) {\n            childAny.push(exp);\n          }\n        }\n        if (vNode.children && vNode.children.length) {\n          stack.push(currentLevel);\n          currentLevel = createLocalVariables(vNode.children, childAny, childOnly, vNode.shadowId);\n        }\n        while (!currentLevel.vNodes.length && stack.length) {\n          currentLevel = stack.pop();\n        }\n      }\n      return result;\n    }\n    function querySelectorAllFilter(domTree, selector, filter) {\n      domTree = Array.isArray(domTree) ? domTree : [ domTree ];\n      var expressions = _convertSelector(selector);\n      return matchExpressions(domTree, expressions, filter);\n    }\n    var query_selector_all_filter_default = querySelectorAllFilter;\n    function preloadCssom(_ref15) {\n      var _ref15$treeRoot = _ref15.treeRoot, treeRoot = _ref15$treeRoot === void 0 ? axe._tree[0] : _ref15$treeRoot;\n      var rootNodes = getAllRootNodesInTree(treeRoot);\n      if (!rootNodes.length) {\n        return Promise.resolve();\n      }\n      var dynamicDoc = document.implementation.createHTMLDocument('Dynamic document for loading cssom');\n      var convertDataToStylesheet = get_stylesheet_factory_default(dynamicDoc);\n      return getCssomForAllRootNodes(rootNodes, convertDataToStylesheet).then(function(assets) {\n        return flattenAssets(assets);\n      });\n    }\n    var preload_cssom_default = preloadCssom;\n    function getAllRootNodesInTree(tree) {\n      var ids = [];\n      var rootNodes = query_selector_all_filter_default(tree, '*', function(node) {\n        if (ids.includes(node.shadowId)) {\n          return false;\n        }\n        ids.push(node.shadowId);\n        return true;\n      }).map(function(node) {\n        return {\n          shadowId: node.shadowId,\n          rootNode: get_root_node_default(node.actualNode)\n        };\n      });\n      return unique_array_default(rootNodes, []);\n    }\n    function getCssomForAllRootNodes(rootNodes, convertDataToStylesheet) {\n      var promises = [];\n      rootNodes.forEach(function(_ref16, index) {\n        var rootNode = _ref16.rootNode, shadowId = _ref16.shadowId;\n        var sheets = getStylesheetsOfRootNode(rootNode, shadowId, convertDataToStylesheet);\n        if (!sheets) {\n          return Promise.all(promises);\n        }\n        var rootIndex = index + 1;\n        var parseOptions = {\n          rootNode: rootNode,\n          shadowId: shadowId,\n          convertDataToStylesheet: convertDataToStylesheet,\n          rootIndex: rootIndex\n        };\n        var importedUrls = [];\n        var p = Promise.all(sheets.map(function(sheet, sheetIndex) {\n          var priority = [ rootIndex, sheetIndex ];\n          return parse_stylesheet_default(sheet, parseOptions, priority, importedUrls);\n        }));\n        promises.push(p);\n      });\n      return Promise.all(promises);\n    }\n    function flattenAssets(assets) {\n      return assets.reduce(function(acc, val) {\n        return Array.isArray(val) ? acc.concat(flattenAssets(val)) : acc.concat(val);\n      }, []);\n    }\n    function getStylesheetsOfRootNode(rootNode, shadowId, convertDataToStylesheet) {\n      var sheets;\n      if (rootNode.nodeType === 11 && shadowId) {\n        sheets = getStylesheetsFromDocumentFragment(rootNode, convertDataToStylesheet);\n      } else {\n        sheets = getStylesheetsFromDocument(rootNode);\n      }\n      return filterStylesheetsWithSameHref(sheets);\n    }\n    function getStylesheetsFromDocumentFragment(rootNode, convertDataToStylesheet) {\n      return Array.from(rootNode.children).filter(filerStyleAndLinkAttributesInDocumentFragment).reduce(function(out, node) {\n        var nodeName2 = node.nodeName.toUpperCase();\n        var data2 = nodeName2 === 'STYLE' ? node.textContent : node;\n        var isLink = nodeName2 === 'LINK';\n        var stylesheet = convertDataToStylesheet({\n          data: data2,\n          isLink: isLink,\n          root: rootNode\n        });\n        out.push(stylesheet.sheet);\n        return out;\n      }, []);\n    }\n    function getStylesheetsFromDocument(rootNode) {\n      return Array.from(rootNode.styleSheets).filter(function(sheet) {\n        return filterMediaIsPrint(sheet.media.mediaText);\n      });\n    }\n    function filerStyleAndLinkAttributesInDocumentFragment(node) {\n      var nodeName2 = node.nodeName.toUpperCase();\n      var linkHref = node.getAttribute('href');\n      var linkRel = node.getAttribute('rel');\n      var isLink = nodeName2 === 'LINK' && linkHref && linkRel && node.rel.toUpperCase().includes('STYLESHEET');\n      var isStyle = nodeName2 === 'STYLE';\n      return isStyle || isLink && filterMediaIsPrint(node.media);\n    }\n    function filterMediaIsPrint(media) {\n      if (!media) {\n        return true;\n      }\n      return !media.toUpperCase().includes('PRINT');\n    }\n    function filterStylesheetsWithSameHref(sheets) {\n      var hrefs = [];\n      return sheets.filter(function(sheet) {\n        if (!sheet.href) {\n          return true;\n        }\n        if (hrefs.includes(sheet.href)) {\n          return false;\n        }\n        hrefs.push(sheet.href);\n        return true;\n      });\n    }\n    function preloadMedia(_ref17) {\n      var _ref17$treeRoot = _ref17.treeRoot, treeRoot = _ref17$treeRoot === void 0 ? axe._tree[0] : _ref17$treeRoot;\n      var mediaVirtualNodes = query_selector_all_filter_default(treeRoot, 'video, audio', function(_ref18) {\n        var actualNode = _ref18.actualNode;\n        if (actualNode.hasAttribute('src')) {\n          return !!actualNode.getAttribute('src');\n        }\n        var sourceWithSrc = Array.from(actualNode.getElementsByTagName('source')).filter(function(source) {\n          return !!source.getAttribute('src');\n        });\n        if (sourceWithSrc.length <= 0) {\n          return false;\n        }\n        return true;\n      });\n      return Promise.all(mediaVirtualNodes.map(function(_ref19) {\n        var actualNode = _ref19.actualNode;\n        return isMediaElementReady(actualNode);\n      }));\n    }\n    var preload_media_default = preloadMedia;\n    function isMediaElementReady(elm) {\n      return new Promise(function(resolve) {\n        if (elm.readyState > 0) {\n          resolve(elm);\n        }\n        function onMediaReady() {\n          elm.removeEventListener('loadedmetadata', onMediaReady);\n          resolve(elm);\n        }\n        elm.addEventListener('loadedmetadata', onMediaReady);\n      });\n    }\n    function isValidPreloadObject(preload3) {\n      return _typeof(preload3) === 'object' && Array.isArray(preload3.assets);\n    }\n    function _shouldPreload(options) {\n      if (!options || options.preload === void 0 || options.preload === null) {\n        return true;\n      }\n      if (typeof options.preload === 'boolean') {\n        return options.preload;\n      }\n      return isValidPreloadObject(options.preload);\n    }\n    function _getPreloadConfig(options) {\n      var _constants_default$pr = constants_default.preload, assets = _constants_default$pr.assets, timeout = _constants_default$pr.timeout;\n      var config = {\n        assets: assets,\n        timeout: timeout\n      };\n      if (!options.preload) {\n        return config;\n      }\n      if (typeof options.preload === 'boolean') {\n        return config;\n      }\n      var areRequestedAssetsValid = options.preload.assets.every(function(a) {\n        return assets.includes(a.toLowerCase());\n      });\n      if (!areRequestedAssetsValid) {\n        throw new Error('Requested assets, not supported. Supported assets are: '.concat(assets.join(', '), '.'));\n      }\n      config.assets = unique_array_default(options.preload.assets.map(function(a) {\n        return a.toLowerCase();\n      }), []);\n      if (options.preload.timeout && typeof options.preload.timeout === 'number' && !isNaN(options.preload.timeout)) {\n        config.timeout = options.preload.timeout;\n      }\n      return config;\n    }\n    function preload(options) {\n      var preloadFunctionsMap = {\n        cssom: preload_cssom_default,\n        media: preload_media_default\n      };\n      if (!_shouldPreload(options)) {\n        return Promise.resolve();\n      }\n      return new Promise(function(resolve, reject) {\n        var _getPreloadConfig2 = _getPreloadConfig(options), assets = _getPreloadConfig2.assets, timeout = _getPreloadConfig2.timeout;\n        var preloadTimeout = setTimeout(function() {\n          return reject(new Error('Preload assets timed out.'));\n        }, timeout);\n        Promise.all(assets.map(function(asset) {\n          return preloadFunctionsMap[asset](options).then(function(results) {\n            return _defineProperty({}, asset, results);\n          });\n        })).then(function(results) {\n          var preloadAssets = results.reduce(function(out, result) {\n            return _extends({}, out, result);\n          }, {});\n          clearTimeout(preloadTimeout);\n          resolve(preloadAssets);\n        })['catch'](function(err2) {\n          clearTimeout(preloadTimeout);\n          reject(err2);\n        });\n      });\n    }\n    var preload_default = preload;\n    function getIncompleteReason(checkData, messages) {\n      function getDefaultMsg(messages2) {\n        if (messages2.incomplete && messages2.incomplete['default']) {\n          return messages2.incomplete['default'];\n        } else {\n          return incomplete_fallback_msg_default();\n        }\n      }\n      if (checkData && checkData.missingData) {\n        try {\n          var msg = messages.incomplete[checkData.missingData[0].reason];\n          if (!msg) {\n            throw new Error();\n          }\n          return msg;\n        } catch (e) {\n          if (typeof checkData.missingData === 'string') {\n            return messages.incomplete[checkData.missingData];\n          } else {\n            return getDefaultMsg(messages);\n          }\n        }\n      } else if (checkData && checkData.messageKey) {\n        return messages.incomplete[checkData.messageKey];\n      } else {\n        return getDefaultMsg(messages);\n      }\n    }\n    function extender(checksData, shouldBeTrue) {\n      return function(check4) {\n        var sourceData = checksData[check4.id] || {};\n        var messages = sourceData.messages || {};\n        var data2 = Object.assign({}, sourceData);\n        delete data2.messages;\n        if (check4.result === void 0) {\n          if (_typeof(messages.incomplete) === 'object' && !Array.isArray(check4.data)) {\n            data2.message = getIncompleteReason(check4.data, messages);\n          }\n          if (!data2.message) {\n            data2.message = messages.incomplete;\n          }\n        } else {\n          data2.message = check4.result === shouldBeTrue ? messages.pass : messages.fail;\n        }\n        if (typeof data2.message !== 'function') {\n          data2.message = process_message_default(data2.message, check4.data);\n        }\n        extend_meta_data_default(check4, data2);\n      };\n    }\n    function publishMetaData(ruleResult) {\n      var checksData = axe._audit.data.checks || {};\n      var rulesData = axe._audit.data.rules || {};\n      var rule3 = find_by_default(axe._audit.rules, 'id', ruleResult.id) || {};\n      ruleResult.tags = clone_default(rule3.tags || []);\n      var shouldBeTrue = extender(checksData, true);\n      var shouldBeFalse = extender(checksData, false);\n      ruleResult.nodes.forEach(function(detail) {\n        detail.any.forEach(shouldBeTrue);\n        detail.all.forEach(shouldBeTrue);\n        detail.none.forEach(shouldBeFalse);\n      });\n      extend_meta_data_default(ruleResult, clone_default(rulesData[ruleResult.id] || {}));\n    }\n    var publish_metadata_default = publishMetaData;\n    function querySelectorAll(domTree, selector) {\n      return query_selector_all_filter_default(domTree, selector);\n    }\n    var query_selector_all_default = querySelectorAll;\n    function matchTags(rule3, runOnly) {\n      var include, exclude, matching;\n      var defaultExclude = axe._audit && axe._audit.tagExclude ? axe._audit.tagExclude : [];\n      if (runOnly.hasOwnProperty('include') || runOnly.hasOwnProperty('exclude')) {\n        include = runOnly.include || [];\n        include = Array.isArray(include) ? include : [ include ];\n        exclude = runOnly.exclude || [];\n        exclude = Array.isArray(exclude) ? exclude : [ exclude ];\n        exclude = exclude.concat(defaultExclude.filter(function(tag) {\n          return include.indexOf(tag) === -1;\n        }));\n      } else {\n        include = Array.isArray(runOnly) ? runOnly : [ runOnly ];\n        exclude = defaultExclude.filter(function(tag) {\n          return include.indexOf(tag) === -1;\n        });\n      }\n      matching = include.some(function(tag) {\n        return rule3.tags.indexOf(tag) !== -1;\n      });\n      if (matching || include.length === 0 && rule3.enabled !== false) {\n        return exclude.every(function(tag) {\n          return rule3.tags.indexOf(tag) === -1;\n        });\n      } else {\n        return false;\n      }\n    }\n    function ruleShouldRun(rule3, context3, options) {\n      var runOnly = options.runOnly || {};\n      var ruleOptions = (options.rules || {})[rule3.id];\n      if (rule3.pageLevel && !context3.page) {\n        return false;\n      } else if (runOnly.type === 'rule') {\n        return runOnly.values.indexOf(rule3.id) !== -1;\n      } else if (ruleOptions && typeof ruleOptions.enabled === 'boolean') {\n        return ruleOptions.enabled;\n      } else if (runOnly.type === 'tag' && runOnly.values) {\n        return matchTags(rule3, runOnly.values);\n      } else {\n        return matchTags(rule3, []);\n      }\n    }\n    var rule_should_run_default = ruleShouldRun;\n    function attributeMatches(node, attrName, filterAttrs) {\n      if (typeof filterAttrs[attrName] === 'undefined') {\n        return false;\n      }\n      if (filterAttrs[attrName] === true) {\n        return true;\n      }\n      return element_matches_default(node, filterAttrs[attrName]);\n    }\n    function filterHtmlAttrs(element, filterAttrs) {\n      if (!filterAttrs) {\n        return element;\n      }\n      var node = element.cloneNode(false);\n      var outerHTML = node.outerHTML;\n      var attributes4 = get_node_attributes_default(node);\n      if (cache_default.get(outerHTML)) {\n        node = cache_default.get(outerHTML);\n      } else if (attributes4) {\n        node = document.createElement(node.nodeName);\n        Array.from(attributes4).forEach(function(attr) {\n          if (!attributeMatches(element, attr.name, filterAttrs)) {\n            node.setAttribute(attr.name, attr.value);\n          }\n        });\n        cache_default.set(outerHTML, node);\n      }\n      Array.from(element.childNodes).forEach(function(child) {\n        node.appendChild(filterHtmlAttrs(child, filterAttrs));\n      });\n      return node;\n    }\n    var filter_html_attrs_default = filterHtmlAttrs;\n    function pushNode(result, nodes) {\n      var temp;\n      if (result.length === 0) {\n        return nodes;\n      }\n      if (result.length < nodes.length) {\n        temp = result;\n        result = nodes;\n        nodes = temp;\n      }\n      for (var _i8 = 0, l = nodes.length; _i8 < l; _i8++) {\n        if (!result.includes(nodes[_i8])) {\n          result.push(nodes[_i8]);\n        }\n      }\n      return result;\n    }\n    function reduceIncludes(includes) {\n      return includes.reduce(function(res, el) {\n        if (!res.length || !contains_default(res[res.length - 1], el)) {\n          res.push(el);\n        }\n        return res;\n      }, []);\n    }\n    function select(selector, context3) {\n      var result = [];\n      var candidate;\n      if (axe._selectCache) {\n        for (var j = 0, l = axe._selectCache.length; j < l; j++) {\n          var item = axe._selectCache[j];\n          if (item.selector === selector) {\n            return item.result;\n          }\n        }\n      }\n      var curried = function(context4) {\n        return function(node) {\n          return is_node_in_context_default(node, context4);\n        };\n      }(context3);\n      var reducedIncludes = reduceIncludes(context3.include);\n      for (var _i9 = 0; _i9 < reducedIncludes.length; _i9++) {\n        candidate = reducedIncludes[_i9];\n        result = pushNode(result, query_selector_all_filter_default(candidate, selector, curried));\n      }\n      if (axe._selectCache) {\n        axe._selectCache.push({\n          selector: selector,\n          result: result\n        });\n      }\n      return result;\n    }\n    var select_default = select;\n    function setScroll(elm, top, left) {\n      if (elm === window) {\n        return elm.scroll(left, top);\n      } else {\n        elm.scrollTop = top;\n        elm.scrollLeft = left;\n      }\n    }\n    function setScrollState(scrollState) {\n      scrollState.forEach(function(_ref21) {\n        var elm = _ref21.elm, top = _ref21.top, left = _ref21.left;\n        return setScroll(elm, top, left);\n      });\n    }\n    var set_scroll_state_default = setScrollState;\n    function tokenList(str) {\n      return (str || '').trim().replace(/\\s{2,}/g, ' ').split(' ');\n    }\n    var token_list_default = tokenList;\n    function validInputTypes() {\n      return [ 'hidden', 'text', 'search', 'tel', 'url', 'email', 'password', 'date', 'month', 'week', 'time', 'datetime-local', 'number', 'range', 'color', 'checkbox', 'radio', 'file', 'submit', 'image', 'reset', 'button' ];\n    }\n    var valid_input_type_default = validInputTypes;\n    var langs = [ , [ , [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, , 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, , 1, 1, 1, , 1, 1, , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, , 1, 1, 1, 1, 1, 1, 1, , 1, , 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, , , , , , 1, 1, 1, 1, , , 1, 1, 1, , 1, , 1, , 1, 1 ], [ 1, 1, 1, , 1, 1, , 1, 1, 1, , 1, , , 1, 1, 1, , , 1, 1, 1, , , , , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, , , , , 1, 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , , 1, 1, 1 ], [ , 1, , , , , , 1, , 1, , , , , 1, , 1, , , , 1, 1, , 1, , , 1 ], [ 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, , 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , , , 1, 1, 1, 1, , , 1, , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , 1, 1, , , 1, , , , , 1, 1, 1, , 1, , 1, , 1, , , , , , 1 ], [ 1, , 1, 1, 1, 1, , , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1 ], [ 1, , 1, , 1, , , , , 1, , 1, 1, 1, 1, 1, , , , 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, , 1, 1, 1, , 1, , 1, 1, 1, , , 1, 1, 1, 1, 1, 1, 1, 1 ], [ , , 1, , , 1, , 1, , , , 1, 1, 1, , , , , , , , , , , 1 ], [ 1, 1, 1, 1, 1, 1, , 1, 1, 1, , 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, , , 1, 1, 1 ], [ 1, 1, 1, 1, 1, , , 1, , , 1, , , 1, 1, 1, , , , , 1, , , , , , 1 ] ], [ , [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, , 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, , , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, , , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, , 1, , , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ], [ , [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1, , 1, 1, 1, 1, 1, 1, 1, , 1 ], [ , 1, , 1, 1, 1, , 1, 1, , 1, , 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , 1, 1, 1, 1, 1, 1, 1, 1, , , 1, 1, 1, , , 1, 1, , , , , , 1, 1 ], [ 1, 1, 1, , , , , 1, , , , 1, 1, , 1, , , , , , 1, , , , , 1 ], [ , 1, , , 1, , , 1, , , , , , 1 ], [ , 1, , 1, , , , 1, , , , 1 ], [ 1, , 1, 1, 1, , 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, , , 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, , , 1, , , 1, , 1, 1, , 1, , 1, , , , , 1, , 1 ], [ , 1, , , , 1, , , 1, 1, , 1, , 1, 1, 1, 1, , 1, 1, , , 1, , , 1 ], [ , 1, 1, , , , , , 1, , , , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1, 1 ], [ , 1, , 1, 1, 1, , , 1, 1, 1, 1, 1, 1, , 1, , , , , 1, 1, , 1, , 1 ], [ , 1, , 1, , 1, , 1, , 1, , 1, 1, 1, 1, 1, , , 1, 1, 1 ], [ , 1, 1, 1, , , , 1, 1, 1, , 1, 1, , , 1, 1, , 1, 1, 1, 1, , 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, , , 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, , 1, 1, 1, , 1, , , , , 1, 1, 1, , , 1, , 1, , , 1, 1 ], [ , , , , 1, , , , , , , , , , , , , , , , , 1 ], [ 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1 ], [ , 1, , 1, 1, 1, , 1, 1, , , , 1, 1, 1, 1, 1, , , 1, 1, 1, , , , , 1 ], [ 1, 1, 1, 1, , , , 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, , , , , , , 1, , , , , , , 1 ], [ , 1, 1, , 1, 1, , 1, , , , , , , , , , , , , 1 ], , [ 1, 1, 1, , , , , , , , , , , , , 1 ], [ , , , , , , , , 1, , , 1, , , 1, 1, , , , , 1 ] ], [ , [ 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1 ], [ , 1, 1, , 1, 1, 1, 1, , 1, 1, , 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, , 1 ], [ , , , 1, , , , , , , , , , , , , , , 1 ], [ , 1, , , 1, 1, , 1, , 1, 1, , , , 1, 1, , , 1, 1, , , , 1 ], [ 1, , , 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, , 1, 1, 1, 1, , , 1, , , , 1 ], , [ , 1, 1, 1, 1, 1, , 1, 1, 1, , 1, 1, , 1, 1, , , 1, 1, 1, 1, , 1, 1, , 1 ], [ , 1, , , 1, , , 1, , 1, , , 1, 1, 1, 1, , , 1, 1, , 1, 1, 1, 1 ], [ , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, , , 1, 1, 1, 1, 1, 1, 1, , , 1, , , 1, , 1 ], [ , 1, , , , , , , , , , 1, 1, , , , , , 1, 1, , , , , 1 ], [ , , , , , , , 1, , , , 1, , 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, , , , 1, 1, 1, 1, 1, , , 1, 1, , 1, 1, 1, 1, 1 ], [ , 1, , , 1, 1, , 1, , 1, 1, 1, , , 1, 1, , , 1, , 1, 1, 1, 1, , 1 ], [ , 1, 1, 1, , 1, 1, , 1, 1, , 1, 1, , 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1 ], [ , , , , , , , , , , , , , , , , 1 ], , [ , 1, 1, 1, 1, 1, , 1, 1, 1, , , 1, , 1, 1, , 1, 1, 1, 1, 1, , 1, , 1 ], [ , , 1, , , 1, , , 1, 1, , , 1, , 1, 1, , 1 ], [ , 1, 1, , 1, , , , 1, 1, , 1, , 1, 1, 1, 1, , 1, 1, 1, 1, , , , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1 ], [ 1, 1 ], [ , 1, , , , , , , , , , 1, 1, , , , , , 1, 1, , 1, , 1, , 1, 1 ], , [ , 1, 1, , 1, , , 1, , 1, , , , 1, 1, 1, , , , , , 1, , , , 1 ], [ 1, 1, , , 1, 1, , 1, , , , , 1, , 1 ] ], [ , [ , 1 ], [ , , , 1, , , , 1, , , , 1, , , , 1, , , 1, , , 1 ], [ , , , , , , , , , , , , , , , , , , 1, 1, , , , , , 1 ], , [ 1, , , , , 1 ], [ , 1, , , , 1, , , , 1 ], [ , 1, , , , , , , , , , , 1, , , 1, , , , , , , , , 1, 1 ], [ , , , , , , , , , , , , , , , , , , , , , 1 ], [ , , , , , , , , , , , , , , , , 1, , , , 1, , 1 ], [ , 1 ], [ , 1, , 1, , 1, , 1, , 1, , 1, 1, 1, , 1, 1, , 1, , , , , , , 1 ], [ 1, , , , , 1, , , 1, 1, , 1, , 1, , 1, 1, , , , , 1, , , 1 ], [ , 1, 1, , , 1, , 1, , 1, , 1, , 1, 1, 1, 1, , , 1, , 1, , 1, 1, 1 ], [ 1, 1, 1, 1, 1, , 1, , 1, , , , 1, 1, 1, 1, , 1, 1, , , 1, 1, 1, 1 ], [ 1, , , , , , , , , , , , , , , , , , , , 1 ], [ , , , , , , , , , 1 ], , [ , 1, , , , , , 1, 1, 1, , 1, , , , 1, , , 1, 1, 1, , , 1 ], [ 1, , , , , 1, , 1, 1, 1, , 1, 1, 1, 1, 1, , 1, , 1, , 1, , , 1, 1 ], [ 1, , 1, 1, , , , , 1, , , , , , 1, 1, , , 1, 1, 1, 1, , , 1, , 1 ], [ 1, , , , , , , , , , , , , , , , , 1 ], [ , , , , , 1, , , 1, , , , , , 1 ], [ , , , , , , , , , , , , , , , 1 ], [ , , , , , , , , , , , , , , , , , , , , 1 ], [ , 1, , , , , , , , , , , , , , 1 ], [ , 1, , , , 1 ] ], [ , [ 1, 1, 1, , 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, , 1, , 1, 1, , , 1, 1, 1 ], [ , , , , , , , , , , , , 1 ], [ , , , , , , , , , , , , , , , , , , , 1 ], , [ , , , , , , , , , , , , , , , , , , 1 ], [ 1, , , , , , , , , 1, , , , 1 ], [ , , , , , , , , , , , , , , , , , , 1 ], , [ 1, 1, , , , 1, 1, , , , , , 1, , , , 1, , 1, , 1, 1, , 1 ], [ 1 ], [ , , , , , , , , , , , 1, , , , , , , , , , , 1 ], [ , 1, , , , , , , 1, 1, , , 1, , 1, , , , 1, , , , , , , 1 ], [ , , , , , , , , , , , , , , , , 1, , , , , 1 ], [ , , 1, , , , , 1, , 1 ], [ 1, , , , 1, , , , , 1, , , , 1, 1, , , , 1, 1, , , , , 1 ], [ , , , , , 1 ], [ , , , , , , , , , , , , , , , , , , , 1 ], [ 1, , , 1, 1, , , , , , , 1, , 1, , 1, 1, 1, 1, 1, 1 ], [ , , , , , 1, , , , , , , 1, , , , , , , 1 ], , [ , , 1, 1, 1, 1, 1, , 1, 1, 1, , , 1, 1, , , 1, 1, , 1, 1, 1, , , 1 ], [ , , , , , , , , , , , , , , , , , , 1 ], [ , 1, , , , 1 ], , [ 1 ] ], [ , [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1 ], [ , , , 1, 1, 1, 1, , , , , , 1, , 1, , , , 1, , 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, , , 1 ], [ , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, , , , 1, , 1, , , 1, 1, 1, 1, 1 ], [ , , , , , , , , , , , 1, , , , , , , , , 1, , , , 1 ], [ , 1, 1, , 1, 1, , 1, , , , 1, 1, , 1, 1, , , 1, , 1, 1, , 1 ], [ , 1, , 1, , 1, , , 1, , , 1, 1, , 1, 1, , , 1, 1, 1 ], [ , 1, 1, 1, 1, 1, , 1, 1, , , , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1 ], [ , , , , , , , , , 1, , 1, , 1, 1, , , , 1, , , 1 ], [ , 1, , , 1, 1, , , , , , , , , 1, 1, 1, , , , , 1 ], [ 1, , , 1, 1, , , , 1, 1, 1, 1, 1, , , 1, , , 1, , , 1, , 1, , 1 ], [ , 1, 1, , 1, 1, , 1, 1, , , , 1, 1, 1, , , 1, 1, , , 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, , 1, 1, , 1, , , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1 ], [ , 1, , , , 1, , , , , , , , , 1 ], [ , 1, , , , , , , , 1, , , , , 1, , , , 1, , , 1 ], [ , 1, 1, 1, 1, , , 1, 1, 1, 1, 1, , 1, , 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , , , , , 1, , 1, , , , , 1, 1, 1, 1, 1, , , 1, , , , 1 ], [ , 1, , , , , , , , 1, , , , , , , , , , , , 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1 ], [ 1, 1, , 1, , 1, 1, , , , 1, , 1, 1, 1, 1, 1, , 1, 1, , , , , , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, , 1, 1, , , 1, 1, , , , 1, , 1, 1, , 1, 1 ], [ , , , , , , , , , , , , , , , , , , , , , , , , 1 ], [ , 1, 1, , 1, 1, 1, 1, , 1, , , 1, 1, 1, 1, , , 1, , , , , , , 1 ], [ , 1, , , , , , , , 1, , , , , 1 ] ], [ , [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , , 1, 1, 1, 1, 1 ], [ , 1, 1, , , , , , , , , , , , 1, 1, , , , , , 1 ], [ , 1, , , , , , , 1 ], [ , , , , , , , , , , , , , , 1, , , , , 1, , , , , , 1 ], [ 1, 1, , , 1, , , 1, 1, 1, , , , 1 ], , [ , , , , , , , , , , , , , 1, , , , , , , , , , 1 ], [ , , , , , , , , , 1, , , , , , , , , 1, , , , , , , 1 ], [ 1, 1, 1, , 1, , 1, 1, 1, 1, 1, 1, 1, 1, , 1, , , 1, , 1, , , 1, 1 ], [ , , , , , , , , , 1 ], [ , 1, , , , 1, , , , , , 1, , , 1, , , , , 1 ], [ , 1, 1, , 1, 1, , , , , , , , , , , , , , , 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , , 1, 1, , 1, 1, 1, 1, , , , 1, 1, , , , 1, , 1 ], [ 1, 1, 1, 1, 1, 1, , , 1, 1, 1, 1, 1, 1, , 1, 1, , 1, 1, 1, , 1, 1, , 1, 1 ], [ , , , , , , , , , , , , , , , 1, , , , 1 ], , [ 1, 1, , 1, , 1, , , , , , 1, , 1, , 1, 1, , 1, , 1, 1, , 1, 1, , 1 ], [ , , 1, , , , , , 1, , , , 1, , 1, , , , , 1 ], [ 1, , , , , , , , , 1, , , , , , 1, , , , 1, , 1, , , 1 ], [ 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , , , 1, , 1, , , , , , 1, , , 1, , , , , , , , 1 ], [ , 1, , 1, , , , , , , , , , , , 1 ], , [ 1, 1, , , , , , , , , , , , , , , , , , , , , , 1, 1 ], [ 1 ] ], [ , [ 1, , , , , , , , , 1, , , , , 1, , 1, , 1 ], [ , 1, 1, , 1, 1, , 1, 1, 1, , , 1, 1, 1, , , , 1, , , 1, , , , 1 ], [ , 1, , , , , , , 1, , , , 1, , , , , , 1 ], [ 1, 1, 1, 1, 1, 1, , , , 1, , , , , , , , , 1, 1, 1, 1 ], [ 1 ], [ , 1, 1, , , 1, 1, , , , , 1, , 1, , , , , , , , 1, , , , 1 ], [ 1, , 1, , , 1, , 1, , , , , 1, 1, 1, 1, , , , 1, , , , 1 ], [ , , 1, , , , , , , 1, , , , , , , 1, , , , , , , 1 ], [ 1, , , , , , , , , , , , , , 1, , , , 1 ], [ , , , 1, , 1, , , , , 1, , , , 1, 1, , , , 1 ], [ 1, , , , , 1, , , , 1, , 1, 1, , , 1, 1, , 1, 1, 1, , 1, 1, 1, , 1 ], [ , 1, 1, , , , , 1, , 1, , 1, 1, 1, , 1, 1, , , 1, , 1, 1, 1 ], [ , 1, , , , 1, , , , 1, , , 1, , 1, 1, , , 1, 1, , , , , , 1 ], [ 1, , 1, 1, , 1, , 1, 1, , 1, , 1, 1, 1, 1, 1, , , 1, 1, , , , , , 1 ], [ 1, , , , , , , , , , , , , , , , , , 1, , , 1, , 1 ], [ , , , , , , , , , 1, , , , , , 1 ], [ , , , , , , , , , , , , , , , , , , , , , 1, , 1 ], [ , 1, , , , 1, , , 1, 1, , 1, , , 1, 1, , , 1, , , 1, , , 1, 1 ], [ 1, 1, , 1, 1, 1, , 1, 1, 1, , 1, , 1, 1, 1, , , 1, , 1, 1 ], [ 1, , 1, 1, 1, 1, , , , 1, , 1, 1, 1, , 1, , , 1, 1, 1, , 1, 1, 1, 1, 1 ], [ 1, , , , , , , , , , , , , 1 ], [ , , 1, , , , , , , , , , , , , , , , , , , , 1 ], [ 1, , , , , , , , , , , 1, , 1, , 1, , , , 1 ], [ , , , 1, , , , , , , , , 1 ], [ , 1, , , , , , , , , , , , , , 1, , , , , , , , , 1 ], [ , , , , , , , , 1, 1, , , , , , , , , 1, , , , , , , , 1 ] ], [ , [ 1, 1, 1, 1, 1, 1, 1, , 1, , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, , , 1, 1, 1 ], [ , , , , , 1, , , , 1, 1, 1, , , 1, 1, , , 1, , 1, 1, , 1 ], [ , , , , , , , , , , , , , , , , , , , 1, 1 ], [ , 1, , , , , , 1, , , , , , , , , , , , , 1 ], [ , , 1, , , 1, , 1, 1, 1, , 1, 1, , 1, , , , 1, , 1, 1 ], , [ , , 1, , , 1, , , , , , 1, , , , 1 ], [ , , , , , , , , , 1, , , , , , , , , , 1 ], [ 1, 1, 1, 1, 1, 1, , 1, 1, 1, , , 1, 1, , 1, , 1, , , 1, 1, 1, , , 1 ], [ , , , , , 1, , , , , , , , , , , , , 1 ], [ , 1, , , , , , , , , , , , 1, , 1, 1, , 1, , , 1 ], [ , , , , , 1, , , , , , , , , , , , , , 1 ], [ , 1, 1, 1, 1, , , , , 1, , , 1, , 1, , , , 1, 1, , , , 1, 1 ], [ , 1, , , 1, , , 1, , 1, 1, , 1, , , , , , , 1 ], [ , , 1, , 1, , , 1, , , , , , , , , , , 1, 1, , , , 1 ], [ , 1, , , , , , , , , , , , , , , , , 1, , , , , , 1 ], [ , , , , , , , , , , , , , , , , , , 1 ], [ , 1, 1, , , , , , , , , , , , , , , , 1, , 1, 1 ], [ , , , , , , , , , , , , 1 ], , [ , 1, 1, 1, 1, , , , 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, , 1, , 1 ], [ 1, , , , 1, , , , , , , , , , 1 ], [ 1, , , , , , , , , 1 ], , [ , 1, , , , 1, , , , , , , , , , , , , , , , , , , , 1 ] ], [ , [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, , 1, 1, 1, 1, , , , 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, , 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , , 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ], [ , [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, , 1, , 1, 1, 1, 1 ], [ 1, 1, 1, 1, , 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , , , 1, 1, 1, 1, , 1, , , , 1, 1, , , 1, 1, , 1 ], [ , 1, 1, , 1, , , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , , , , , , , , , , , , 1 ], [ 1, 1, 1, , , , , 1, 1, 1, , 1, 1, 1, 1, , , 1, 1, , 1, 1, , , , , 1 ], [ , 1, , , , , , , 1, 1, , , 1, 1, 1, , 1, , , 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1 ], [ , 1, , , , 1, , , , 1, , , 1, , , , 1, , , , , , , 1, 1 ], [ , 1, 1, 1, 1, 1, , , 1, 1, 1, , 1, 1, 1, 1, , , 1, 1, 1, 1, , , , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, , 1, , , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , , 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, , 1, , , 1, 1, 1, 1, , 1, 1, 1, 1, , , , 1, , 1, , 1, , , 1 ], [ 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , , , 1, , , , , , , , , 1, 1, , , , , , , , , 1 ], , [ , 1, , 1, , 1, , 1, , 1, , 1, 1, 1, 1, 1, , , 1, , 1, , 1, , , , 1 ], [ , 1, , , 1, 1, , 1, 1, 1, , , 1, 1, 1, 1, 1, , 1, 1, 1, , 1, , , 1 ], [ 1, , , 1, , , , 1, 1, 1, , , , , 1, 1, , , , 1, , 1 ], [ 1, 1, , 1, 1, 1, 1, , , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1 ], [ 1, 1, , , , , , , , 1, , 1, , , , , , , , 1, , 1 ], [ , 1, , , , 1, , 1, 1, , , , 1, 1, , 1, , , , 1, 1, 1, , 1 ], , [ , 1, , , , , , 1, , , , , , , 1 ], [ , , , , , , , , 1, , , , 1, , 1, , , , , , , , , , , , 1 ] ], [ , [ , 1, 1, , 1, 1, 1, 1, , 1, 1, 1, , 1, 1, , 1, 1, , 1, 1, 1, 1, 1, 1, , 1 ], [ , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1 ], [ , 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ], [ , [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , , 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , , 1, , 1 ], [ 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , , 1, , , , , , , , 1, , , , , , 1, , , 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, , 1, , , , 1, 1, 1, , 1, 1, 1, 1, , , 1, 1, 1, 1, , , 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1 ], [ 1, 1, , 1, , 1, , 1, , 1, 1, 1, 1, 1, 1, 1, , 1, 1, , , 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, , 1, 1 ], [ , 1, 1, , , , , 1, 1, 1, , , 1, , 1, 1, , , , 1, , 1, , , 1, 1 ], [ , , , , , , , 1, , , , 1, 1, 1, 1, 1, , 1, , , , , , , , 1 ], [ 1, 1, 1, 1, , 1, 1, 1, , 1, , 1, 1, 1, 1, , 1, , 1, , 1, 1, , , 1, , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , , , , 1, 1, , 1, , 1, 1, 1, , 1, , 1, 1, , 1, 1, , 1, , 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, , , , , , , , 1, , , , , 1, , 1 ], [ , 1, 1, 1, , 1, , 1, , 1, , , , 1, , 1, , , 1, , , , , , 1, 1 ], [ , 1, , , 1, 1, , 1, , 1, , 1, 1, 1, 1, 1, , 1, 1, , , 1, , , 1 ], [ 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, , 1, , , , , 1, , 1, , 1, , , , , , 1, , 1, , , , 1, 1 ] ], [ , [ , 1, , 1, , , , , , , , , , , , , , , 1, , , , 1 ], [ , , , , , , , , , 1, , 1, 1, 1, , 1, , , 1, , 1, 1 ], [ 1, 1, , , , , , , 1, , , , , , , 1, , , , , , 1 ], [ , 1, , , , , , , , , , 1, , , , , , , , , 1, 1 ], , [ , , , , , , , , , , , , , , , 1, , , , 1, , 1 ], [ , , 1, 1, , 1, , 1, , , , , , , , 1, , , , , , 1 ], [ , , , , , , , , , , , , , , , , , , , , 1, 1 ], [ , 1, , , , , , , , , , , , , 1 ], [ 1, , 1, 1, , , , 1, , , , , , , , , 1, , , 1, , , 1, 1 ], [ , 1, 1, , 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, , , 1, 1, , 1, 1, , 1 ], [ , 1, , , 1, 1, , , , , , 1, , 1, , 1, , , 1, , 1, 1 ], [ 1, 1, 1, 1, , 1, , 1, , 1, , 1, 1, , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1 ], [ , 1, 1, , , 1, , 1, , 1, 1, 1, , , 1, 1, 1, , 1, 1, 1, 1, , 1, 1 ], [ , , , , 1, , , 1, , , , , , , 1, , , , 1, 1 ], [ , 1, , , , , , , , , , 1, , 1, , 1, , , , , 1, , , , , 1 ], , [ 1, 1, , 1, , 1, , 1, 1, , , , , , 1, 1, , , 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, , 1, , , , , , 1, , , , , , 1, 1, , , , 1, 1, , , 1 ], [ , 1, 1, , 1, 1, , , , 1, , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, , 1, 1, 1, 1 ], [ , 1, 1, , , 1, , , , 1, , , , 1, 1 ], [ , , , , 1 ], [ , , , , , , , , , 1, , , 1 ], , [ , , 1, , 1, , , , , , , , , 1, , , , , , , , , , , , 1 ], [ , , , , , , , , , , , , , 1 ] ], [ , [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , , 1, 1, , 1, 1, 1, 1, 1, , , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, , , 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, , 1, , , , , 1 ], [ , 1, , 1, , , , , , 1, , , , , 1, 1, , , , , 1, 1 ], [ , 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, , 1, , , 1, , 1, 1, 1 ], [ , 1, , , , 1, , , , , , , 1 ], [ , 1, , , 1, , , 1, , 1, , 1, 1, , 1, , , , , 1, , 1, , , , 1, 1 ], [ , 1, , , 1, , , 1, 1, 1, , 1, 1, 1, 1, 1, , 1, 1, , 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , , , , , , , , , , , , , , , , , , , , 1 ], [ , 1, 1, 1, , , , 1, 1, , , , , , 1, 1, 1, , 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1 ], [ , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, , 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , , , 1, 1, 1, 1, 1, 1, 1, , 1, , 1, 1, 1, 1, 1, , 1, 1, , 1, 1, 1, 1, 1 ], [ , 1, , , , 1, , , , 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , , , 1, , , , , , , , 1, , , , , , , , , , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1 ], [ 1, 1, , 1, 1, 1, , 1, 1, 1, , , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, , 1 ], [ 1, 1, , , , , , , 1, 1, , , , , 1, 1, 1, 1, 1, , 1, 1, 1, 1, , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, , 1, , 1, 1, 1, 1, , 1, 1, , 1, 1, 1, 1 ], , [ , 1, 1, , , , , 1, , 1, , , , 1, 1, 1, , , 1, , , , , 1 ], [ , , , , , , , , , , , , , 1 ], [ , , , , , 1, , , , , , , , 1, 1, , , , , 1, , 1, , , 1, 1 ], [ , , , , , , , , , , , , , , 1 ] ], [ , [ , 1 ], , , , , , , , , , , , , , , , , , , , [ 1, 1, 1, 1, 1, , 1, 1, 1, 1, , 1, 1, 1, 1, , 1, 1, 1, 1, , , 1, 1, 1, 1, 1 ], [ , 1, , 1, , 1, , , 1, 1, 1, , 1, 1, 1, 1, 1, , , 1, , , , 1, , 1, 1 ], [ , 1, , 1, , 1, , , 1, , , , , 1, , , , , , 1, 1 ], [ , 1, , 1, , , , , 1, , , , 1, , 1, 1, 1, 1, 1, 1, 1, 1, , 1 ], [ , 1, , , , , , , , , , , , , , , 1 ] ], [ , [ , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , , 1, , , , , , , , , 1, 1, , , , 1 ], [ , , , , , , 1 ], [ , , 1 ], [ , 1, 1, , , 1, , 1, , 1, 1, , 1, 1, 1, , , , 1, 1, 1, , , , , 1 ], , [ , 1, , , , 1, , , , , , 1, , , 1, , , , 1, 1, , 1 ], [ , , , , , , , 1, , , , , , , , , 1 ], [ , 1, , , , 1, 1, , , , , , 1, 1, 1, , , , 1, , 1, 1 ], [ , , , , , , , 1, , 1, , , , , , , , , , 1 ], [ , 1, 1, , , , , , 1, 1, , , , 1, , , , , , , 1, , , 1 ], , [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, , , 1, , , 1, , , , , 1, , 1, , 1, , 1, , , , , 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, , , , , 1, 1, , 1, 1, , 1, , , 1, , 1 ], [ , , , , , , , , , , , , , , 1, , , , , , 1 ], , [ , , , , , , , , , 1, , , , , , 1, , , , , 1 ], [ , , 1, , , , , , , 1, , , 1, 1 ], [ , , , 1, , , , , 1, , , , , 1, , , , , , 1, , , , 1 ], [ 1, , 1, 1, , 1, 1, 1, 1, 1, , 1, , , , 1, 1, 1, , , 1, 1, , , , 1, 1 ], , [ 1, 1, , , , , , , , , , 1, , 1, , 1, , , 1 ], [ , , , , 1, , , , , , , , , , , , , , , , , , , 1 ], [ , , , , , , , , , , , , , , 1, , , , , 1, , 1 ], [ , , , , , , , , 1 ] ], [ , [ 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, , , 1, 1, 1, 1, 1, , 1, 1, , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, , 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1 ], [ , , 1, , , 1, , , , , , , , 1, , , , , , 1, , , , 1 ], [ 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, , 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, , 1, 1, , 1, , , , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, , 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, , 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1 ], [ , , 1, 1, 1, 1, , 1, , 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1 ], [ 1, 1, , , , , , , 1, , 1, 1, , 1, 1, 1, , 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1 ], [ 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1 ], [ 1, 1, 1, 1, , 1, , 1, , 1, 1, 1, 1, 1, , , , 1, 1, 1, 1, , 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, , 1, , , , , , 1, , 1, , , , , 1, 1, , , , , 1 ], [ 1, , 1, 1, , , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , , 1, 1, , 1, , 1, , , , 1, 1, 1, 1, 1, , , 1, 1, , 1, , 1 ], [ , 1, 1, 1, 1, , , , , 1, , 1, 1, 1, 1, 1, , , 1, 1, , , , 1, 1, 1 ], [ , 1, 1, 1, 1, 1, , 1, , , , , 1, , 1, , 1, , , 1, , , 1, 1, , 1 ] ], [ , [ 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, , 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , , , , , , , , , 1, , , , , 1, 1, , , 1, , 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , , , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, , , 1, 1, 1, 1, , 1, 1, , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , , , , , 1, , 1, 1, , 1, 1, 1, 1, 1, , , 1, , 1, , 1 ], [ 1, 1, 1, , 1, 1, 1, 1, , , , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1 ], [ 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, , 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1 ], [ , 1, , 1, , 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1 ], [ , , 1, , , , , , , , , , 1, 1, 1, 1, 1, 1, 1, , 1, 1, , 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , , 1, 1, , , , , , 1, 1, 1, 1, 1, , , , 1, 1, 1, , 1, 1, 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, 1, , , , 1, 1, 1, 1, 1, 1, 1, , 1, 1, , 1, 1, 1 ], [ , 1, 1, 1, , 1, , 1, 1, 1, 1, , , 1, 1, 1, , 1, 1, 1, 1, 1, , , 1, 1 ], [ 1, 1, , , , 1, , , 1, 1, 1, , 1, , 1, , 1, , 1, 1, 1, 1, 1, , 1, , 1 ], [ , 1, , , , , , , 1, , 1, , 1, 1, 1, 1, , , , , , , , , 1 ] ], [ , [ , , , , , , , , , , , , , 1, 1, , , , 1 ], [ , 1, , , , , , , , 1, , , 1, , , , , , 1, , , 1, , , , 1 ], , [ , 1, , , , 1, , 1, , 1, 1, , 1, 1, , , , , , , , 1 ], [ , , , , , , , , , , , , , , , , , , , 1 ], [ , , , , , , , , , 1 ], [ 1, 1, 1, , , 1, , , , , , , , , 1, 1, , , , , , , , , , 1 ], [ , 1, , , , , , , , , , , , , 1 ], [ , , , , , , , , , , , , , , , , , , , 1, , , 1 ], [ , , , , , , , , , 1 ], [ 1, 1, , , , , , 1, 1, 1, , 1, 1, , , , 1, 1, , 1, , 1, 1, 1, , 1 ], [ , 1, 1, 1, , 1, 1, , , 1, , 1, 1, 1, 1, , , , , , , 1, , 1 ], [ , 1, 1, 1, 1, , , 1, , 1, , , , 1, 1, 1, 1, , 1, 1, , 1 ], [ , 1, , , 1, 1, , 1, , , , 1, , 1, 1, , 1, , 1, , , 1, , , 1, , 1 ], [ , , , , , , , , , , , 1 ], [ , , , , , , , , , 1, , , , , , , , , , , , , 1 ], , [ 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, , 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , , , , , , 1, 1, , 1, , , , , 1, , , 1, , 1 ], [ , 1, , , , 1, , , 1, , , , , , , , 1, , 1, , , 1 ], [ , , , , , , , , , , , , , 1, 1, , , , 1, , , 1 ], [ , , , , , 1, , , 1, , , , 1 ], [ , 1 ], , [ , 1 ], [ 1, , , , , , , , , , , , , , 1, , , , , 1 ] ], [ , [ , 1, , , , 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, , 1, 1, , 1, 1, , , 1 ], [ , , 1, , , , , , , , , 1 ], , , [ 1, , , 1, 1, , , , , , , , 1, 1, , 1, 1, , 1 ], , [ , , , , , , , , , , , , , , , , , , 1, , 1 ], , [ 1, , , 1, 1, , 1, 1, , , , , 1, , 1, , , , , 1, 1, , 1 ], , [ , 1, , , , , , , , 1, 1, 1, 1, 1, , 1, 1, , , , 1, 1 ], [ , , , , , , , , , , , , , , , , 1, , , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1 ], [ , , , , , , , , , , , 1, , 1, , , 1 ], [ 1, , , , , , , , , , , , , , , , , , 1, , 1 ], , , [ , 1, , , , , , , , , , , , , , 1, , , , 1, 1 ], [ , , , , , , , , , 1, , , 1, , , , , , , , , , 1 ], [ , , , , , , , , , , , , , , , 1 ], [ , , , , , , , , , , , , , 1, 1, , , , , , 1 ], , [ , 1 ] ], [ , [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, , , 1, 1, , 1, 1, 1, 1, 1, 1, , , 1, 1, 1, 1, 1, , 1, 1 ], [ , 1, , , , , , , , 1 ], [ , , , , 1, , , 1, , , 1, 1, , , , , , , , , , 1, , , , 1 ], [ , 1, , 1, 1, , , 1, 1, 1, , , , 1, 1, 1, 1, , 1, 1, 1, 1, , 1 ], [ , , , , , , , 1 ], [ , 1, 1, , , , , 1, , 1, , , , , , 1, , , , , , 1, , 1, , 1 ], [ , 1, , , , , , 1, , , , 1, , , , , , , , , , 1 ], [ , , 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , , , 1, , 1, 1, 1, 1, , 1 ], [ , 1, , , , , , , , 1 ], [ , 1, 1, , 1, , , , , , , , 1, , , , , , 1, , , 1, , 1, , 1 ], [ , 1, , 1, , 1, , 1, 1, 1, , 1, 1, 1, , 1, , , 1, 1, , 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, , , 1, 1, , , , 1, 1, 1, , , , 1, 1, , , 1, 1 ], [ , , 1, 1, 1, 1, , 1, , 1, , 1, , 1, 1, 1, 1, , , , , 1, , 1, , 1 ], [ 1, 1, 1, 1, 1, 1, 1, 1, , 1, , 1, , 1, 1, 1, , , 1, 1, , , , 1, , 1 ], [ , , , 1 ], , [ , 1, 1, , 1, , , 1, 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1, , 1, 1, 1, 1, 1, 1 ], [ , 1, , , , , , 1, , 1, , 1, , , , , , , 1, 1, , 1, 1 ], [ , , , , , , 1, , 1, 1, , 1, , 1, , , , , , , , , , 1 ], [ , 1, 1, , 1, , , , 1, , , , 1, 1, 1, , , , 1, , 1, 1, 1, , 1, 1 ], , [ , 1, 1, , , , , , , , , , , , , 1, , , 1, , , , , 1 ], [ , 1, , , , , , , , , , , , , , , , , , , , , , 1 ], [ , 1, 1, , , , , , , 1, , , , 1, , , , , 1, , , , , , , 1 ] ], [ , [ , 1, 1, 1, 1, 1, , 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1 ], [ , 1, 1, 1, 1, 1, , 1, , 1, 1, , , 1, 1, 1, 1, , 1, , , , , 1, 1, 1 ], [ , , 1, 1, , 1, , 1, 1, , , , 1, 1, 1, 1, , , 1, , 1, 1, 1, 1, , 1 ], [ , 1, , 1, , , , , , , , 1, , 1, , 1, , , , , , , , , , 1 ], [ , , 1, , 1, , , 1, , , , , 1, 1, , , 1, , 1, 1, 1, 1 ], [ , 1 ], [ , 1, 1, , 1, , 1, 1, , 1, , , 1, 1, 1, , , , 1, , , 1, , 1 ], [ 1, 1, , 1, 1, 1, , , , , , , , , , , , , 1, , 1, 1, 1 ], [ , 1, 1, , , , , , , 1, , , 1, , 1, , 1, , 1, 1, , , 1, , , 1 ], [ , , 1, , , , , , , , , , , , , , , , , , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, 1, 1, 1, , 1, , 1, , , , , 1, 1, 1, , , 1, , 1, , , , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, , 1, , , 1, 1, 1, , 1, , 1, 1, 1, , , 1, 1, 1, 1, , , , 1, 1 ], [ , , , 1, 1, , , 1, , 1, , 1, , 1, 1, 1, 1, , 1, , , , , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , , , , , , , , , , , , , , , , , , 1 ], [ , 1, 1, , 1, 1, , 1, , 1, , , , 1, 1, , , 1, 1, , 1, 1, , 1 ], [ , 1, 1, 1, 1, 1, , , 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, , , 1 ], [ , 1, 1, 1, 1, 1, , 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1 ], [ , 1, 1, , 1, , , 1, , , 1, , 1, 1, 1, 1, 1, , 1, , 1, 1 ], [ , , , , , 1, , , , 1, , , , , 1, 1, , , , 1 ], [ , 1, , 1, 1, 1, , 1, , , 1, 1, 1, , , 1, , , 1, , 1, , , 1 ], [ , , 1, , , , , , , , , 1, , 1, , , , , 1, , 1 ], [ , 1, 1, , , , , , , , 1, 1, 1, , , , , , , , 1, , , , , 1 ], [ , , , , , , , , 1, , , , , 1, , , 1 ] ], [ , [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, 1, , 1, 1, , , 1, 1, 1, 1, 1, 1, 1, 1, , , , , , , , , 1, 1 ], [ , , , , , , , , 1, , , , 1, , 1, , 1 ], [ , 1, , , 1, 1, , 1, , , , 1, , , , , , , , 1 ], [ , 1, , 1, , 1, , , , 1, 1, , 1, , 1, , , , 1, 1, 1, 1, 1, , , 1 ], , [ , 1, , , , , , , , 1, , , 1, 1, , , 1, , 1, 1, , 1, , 1 ], [ , 1, , , 1, , , , , , , , 1, , , , , , , 1 ], [ 1, 1, , , , , 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1 ], , [ , 1, , , , , , 1, , 1, , 1, 1, 1, 1, 1, , , 1, , 1, 1, , , , 1 ], [ , 1, 1, , , 1, , 1, , 1, , , 1, 1, 1, 1, , , 1, , , 1, , , , 1 ], [ , 1, 1, 1, 1, 1, , 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , , , 1, , 1 ], [ , 1, , , 1, 1, , 1, 1, , , 1, 1, , 1, 1, , 1, , 1, , 1 ], [ 1, , 1, , , , , 1, , 1, , 1, 1, 1, 1, , , , , 1, 1, , , , 1, 1 ], [ , 1, 1, , , , , 1, 1, , , 1, , 1, 1, 1, 1, , , , , , , , , , 1 ], , [ , 1, 1, , , 1, , , , 1, , 1, 1, 1, 1, 1, , , , 1, , , , 1, , 1 ], [ , , , 1, 1, , , 1, , , , , 1, , 1, 1, 1, , 1, 1, , , , , , 1 ], [ , 1, , , , , , , , , , , 1, , , , 1, , , , , , , 1, , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, , 1, 1, 1, , 1, 1, , 1, 1, 1, 1 ], [ , 1, , , , , , , , , , , , , , , , , , , 1 ], [ , 1, , , , , , 1, , , , , 1, , 1, , , 1, 1, , 1, 1, , 1 ], [ , 1, , , , , , 1, , , , , 1, 1, , , , , , , , 1, , , , 1 ], [ , , , , , , , , , , , , , , , , , , 1, , , 1, , , , , 1 ], [ , , , , , , , 1, , , , 1 ] ], [ , [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , 1, , 1, , , , , , , 1, , , , , , , , 1, , , 1 ], [ , 1, , , , , , , 1 ], [ , , , , , , , , , , 1 ], [ , 1, , , , , , 1, 1, , , , , , 1 ], , [ , 1, 1, , , , , , 1, , , , , 1, 1, , , , 1 ], [ 1, , 1, , 1, , , , , 1, , , , , 1, , , , , , , , , 1, 1 ], [ , 1, 1, , , , , , , , , 1, 1, 1, 1, , , , 1, , , , , 1, , , 1 ], , [ , 1, 1, , 1, , , 1, 1, , , 1, , , 1, 1, 1, , 1, , 1, 1, 1, , , , 1 ], [ , , , , , 1, , , , , 1, , , 1, 1, , , 1, , 1, , , , 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , 1, , , 1, 1, , 1, , , , 1, , , , , , , , 1 ], [ , , , 1, , , , , 1, , , , , 1, , 1, , 1, 1, 1 ], [ , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ , , , , , 1 ], [ , 1, , , , , , 1, , , , , , , 1, 1, 1, , , 1 ], [ , 1, , , , , , , , , , 1, 1, 1, , , , , 1, , , 1 ], [ , , , , , 1, , 1, , , , , 1, 1, 1, , 1, 1, , 1, 1, 1, , , 1, 1 ], [ 1, 1, , , , , , , 1, , , , , 1, 1, , , , , , , , , , , 1 ], , [ , 1 ], [ , , , , , , , , , , , , , , , , , , , , , , , , 1 ], [ , , 1, , , , , 1, , , 1, , , , 1, , 1 ], [ , 1, , , , , , , , , 1 ] ] ];\n    function isValidLang(lang) {\n      var array = langs;\n      while (lang.length < 3) {\n        lang += '`';\n      }\n      for (var _i10 = 0; _i10 <= lang.length - 1; _i10++) {\n        var index = lang.charCodeAt(_i10) - 96;\n        array = array[index];\n        if (!array) {\n          return false;\n        }\n      }\n      return true;\n    }\n    function _validLangs(langArray) {\n      langArray = Array.isArray(langArray) ? langArray : langs;\n      var codes = [];\n      langArray.forEach(function(lang, index) {\n        var _char2 = String.fromCharCode(index + 96).replace('`', '');\n        if (Array.isArray(lang)) {\n          codes = codes.concat(_validLangs(lang).map(function(newLang) {\n            return _char2 + newLang;\n          }));\n        } else {\n          codes.push(_char2);\n        }\n      });\n      return codes;\n    }\n    var valid_langs_default = isValidLang;\n    axe._thisWillBeDeletedDoNotUse = axe._thisWillBeDeletedDoNotUse || {};\n    axe._thisWillBeDeletedDoNotUse.utils = {\n      setDefaultFrameMessenger: setDefaultFrameMessenger\n    };\n    var SerialVirtualNode = function(_abstract_virtual_nod2) {\n      _inherits(SerialVirtualNode, _abstract_virtual_nod2);\n      var _super2 = _createSuper(SerialVirtualNode);\n      function SerialVirtualNode(serialNode) {\n        var _this2;\n        _classCallCheck(this, SerialVirtualNode);\n        _this2 = _super2.call(this);\n        _this2._props = normaliseProps(serialNode);\n        _this2._attrs = normaliseAttrs(serialNode);\n        return _this2;\n      }\n      _createClass(SerialVirtualNode, [ {\n        key: 'attr',\n        value: function attr(attrName) {\n          return this._attrs[attrName] || null;\n        }\n      }, {\n        key: 'hasAttr',\n        value: function hasAttr(attrName) {\n          return this._attrs[attrName] !== void 0;\n        }\n      }, {\n        key: 'props',\n        get: function get() {\n          return this._props;\n        }\n      }, {\n        key: 'attrNames',\n        get: function get() {\n          return Object.keys(this._attrs);\n        }\n      } ]);\n      return SerialVirtualNode;\n    }(abstract_virtual_node_default);\n    function normaliseProps(serialNode) {\n      var nodeName2 = serialNode.nodeName;\n      var _serialNode$nodeType = serialNode.nodeType, nodeType = _serialNode$nodeType === void 0 ? 1 : _serialNode$nodeType;\n      assert_default(typeof nodeType === 'number', 'nodeType has to be a number, got \\''.concat(nodeType, '\\''));\n      assert_default(typeof nodeName2 === 'string', 'nodeName has to be a string, got \\''.concat(nodeName2, '\\''));\n      nodeName2 = nodeName2.toLowerCase();\n      var type = null;\n      if (nodeName2 === 'input') {\n        type = (serialNode.type || serialNode.attributes && serialNode.attributes.type || '').toLowerCase();\n        if (!valid_input_type_default().includes(type)) {\n          type = 'text';\n        }\n      }\n      var props = _extends({}, serialNode, {\n        nodeType: nodeType,\n        nodeName: nodeName2\n      });\n      if (type) {\n        props.type = type;\n      }\n      delete props.attributes;\n      return Object.freeze(props);\n    }\n    function normaliseAttrs(_ref22) {\n      var _ref22$attributes = _ref22.attributes, attributes4 = _ref22$attributes === void 0 ? {} : _ref22$attributes;\n      var attrMap = {\n        htmlFor: 'for',\n        className: 'class'\n      };\n      return Object.keys(attributes4).reduce(function(attrs, attrName) {\n        var value = attributes4[attrName];\n        assert_default(_typeof(value) !== 'object' || value === null, 'expects attributes not to be an object, \\''.concat(attrName, '\\' was'));\n        if (value !== void 0) {\n          var mappedName = attrMap[attrName] || attrName;\n          attrs[mappedName] = value !== null ? String(value) : null;\n        }\n        return attrs;\n      }, {});\n    }\n    var serial_virtual_node_default = SerialVirtualNode;\n    var aria_exports = {};\n    __export(aria_exports, {\n      allowedAttr: function allowedAttr() {\n        return allowed_attr_default;\n      },\n      arialabelText: function arialabelText() {\n        return arialabel_text_default;\n      },\n      arialabelledbyText: function arialabelledbyText() {\n        return arialabelledby_text_default;\n      },\n      getAccessibleRefs: function getAccessibleRefs() {\n        return get_accessible_refs_default;\n      },\n      getElementUnallowedRoles: function getElementUnallowedRoles() {\n        return get_element_unallowed_roles_default;\n      },\n      getExplicitRole: function getExplicitRole() {\n        return get_explicit_role_default;\n      },\n      getOwnedVirtual: function getOwnedVirtual() {\n        return get_owned_virtual_default;\n      },\n      getRole: function getRole() {\n        return get_role_default;\n      },\n      getRoleType: function getRoleType() {\n        return get_role_type_default;\n      },\n      getRolesByType: function getRolesByType() {\n        return get_roles_by_type_default;\n      },\n      getRolesWithNameFromContents: function getRolesWithNameFromContents() {\n        return get_roles_with_name_from_contents_default;\n      },\n      implicitNodes: function implicitNodes() {\n        return implicit_nodes_default;\n      },\n      implicitRole: function implicitRole() {\n        return implicit_role_default;\n      },\n      isAccessibleRef: function isAccessibleRef() {\n        return is_accessible_ref_default;\n      },\n      isAriaRoleAllowedOnElement: function isAriaRoleAllowedOnElement() {\n        return is_aria_role_allowed_on_element_default;\n      },\n      isUnsupportedRole: function isUnsupportedRole() {\n        return is_unsupported_role_default;\n      },\n      isValidRole: function isValidRole() {\n        return is_valid_role_default;\n      },\n      label: function label() {\n        return label_default2;\n      },\n      labelVirtual: function labelVirtual() {\n        return label_virtual_default;\n      },\n      lookupTable: function lookupTable() {\n        return lookup_table_default;\n      },\n      namedFromContents: function namedFromContents() {\n        return named_from_contents_default;\n      },\n      requiredAttr: function requiredAttr() {\n        return required_attr_default;\n      },\n      requiredContext: function requiredContext() {\n        return required_context_default;\n      },\n      requiredOwned: function requiredOwned() {\n        return required_owned_default;\n      },\n      validateAttr: function validateAttr() {\n        return validate_attr_default;\n      },\n      validateAttrValue: function validateAttrValue() {\n        return validate_attr_value_default;\n      }\n    });\n    function getGlobalAriaAttrs() {\n      if (cache_default.get('globalAriaAttrs')) {\n        return cache_default.get('globalAriaAttrs');\n      }\n      var globalAttrs = Object.keys(standards_default.ariaAttrs).filter(function(attrName) {\n        return standards_default.ariaAttrs[attrName].global;\n      });\n      cache_default.set('globalAriaAttrs', globalAttrs);\n      return globalAttrs;\n    }\n    var get_global_aria_attrs_default = getGlobalAriaAttrs;\n    function allowedAttr(role) {\n      var roleDef = standards_default.ariaRoles[role];\n      var attrs = _toConsumableArray(get_global_aria_attrs_default());\n      if (!roleDef) {\n        return attrs;\n      }\n      if (roleDef.allowedAttrs) {\n        attrs.push.apply(attrs, _toConsumableArray(roleDef.allowedAttrs));\n      }\n      if (roleDef.requiredAttrs) {\n        attrs.push.apply(attrs, _toConsumableArray(roleDef.requiredAttrs));\n      }\n      return attrs;\n    }\n    var allowed_attr_default = allowedAttr;\n    function arialabelText(vNode) {\n      if (!(vNode instanceof abstract_virtual_node_default)) {\n        if (vNode.nodeType !== 1) {\n          return '';\n        }\n        vNode = get_node_from_tree_default(vNode);\n      }\n      return vNode.attr('aria-label') || '';\n    }\n    var arialabel_text_default = arialabelText;\n    function isUnsupportedRole(role) {\n      var roleDefinition = standards_default.ariaRoles[role];\n      return roleDefinition ? !!roleDefinition.unsupported : false;\n    }\n    var is_unsupported_role_default = isUnsupportedRole;\n    function isValidRole(role) {\n      var _ref23 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, allowAbstract = _ref23.allowAbstract, _ref23$flagUnsupporte = _ref23.flagUnsupported, flagUnsupported = _ref23$flagUnsupporte === void 0 ? false : _ref23$flagUnsupporte;\n      var roleDefinition = standards_default.ariaRoles[role];\n      var isRoleUnsupported = is_unsupported_role_default(role);\n      if (!roleDefinition || flagUnsupported && isRoleUnsupported) {\n        return false;\n      }\n      return allowAbstract ? true : roleDefinition.type !== 'abstract';\n    }\n    var is_valid_role_default = isValidRole;\n    function getExplicitRole(vNode) {\n      var _ref24 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, fallback = _ref24.fallback, abstracts = _ref24.abstracts, dpub = _ref24.dpub;\n      vNode = vNode instanceof abstract_virtual_node_default ? vNode : get_node_from_tree_default(vNode);\n      if (vNode.props.nodeType !== 1) {\n        return null;\n      }\n      var roleAttr = (vNode.attr('role') || '').trim().toLowerCase();\n      var roleList = fallback ? token_list_default(roleAttr) : [ roleAttr ];\n      var firstValidRole = roleList.find(function(role) {\n        if (!dpub && role.substr(0, 4) === 'doc-') {\n          return false;\n        }\n        return is_valid_role_default(role, {\n          allowAbstract: abstracts\n        });\n      });\n      return firstValidRole || null;\n    }\n    var get_explicit_role_default = getExplicitRole;\n    function getElementsByContentType(type) {\n      return Object.keys(standards_default.htmlElms).filter(function(nodeName2) {\n        var elm = standards_default.htmlElms[nodeName2];\n        if (elm.contentTypes) {\n          return elm.contentTypes.includes(type);\n        }\n        if (!elm.variant) {\n          return false;\n        }\n        if (elm.variant['default'] && elm.variant['default'].contentTypes) {\n          return elm.variant['default'].contentTypes.includes(type);\n        }\n        return false;\n      });\n    }\n    var get_elements_by_content_type_default = getElementsByContentType;\n    function toGrid(node) {\n      var table5 = [];\n      var rows = node.rows;\n      for (var i = 0, rowLength = rows.length; i < rowLength; i++) {\n        var cells = rows[i].cells;\n        table5[i] = table5[i] || [];\n        var columnIndex = 0;\n        for (var j = 0, cellLength = cells.length; j < cellLength; j++) {\n          for (var colSpan = 0; colSpan < cells[j].colSpan; colSpan++) {\n            var rowspanAttr = cells[j].getAttribute('rowspan');\n            var rowspanValue = parseInt(rowspanAttr) === 0 || cells[j].rowspan === 0 ? rows.length : cells[j].rowSpan;\n            for (var rowSpan = 0; rowSpan < rowspanValue; rowSpan++) {\n              table5[i + rowSpan] = table5[i + rowSpan] || [];\n              while (table5[i + rowSpan][columnIndex]) {\n                columnIndex++;\n              }\n              table5[i + rowSpan][columnIndex] = cells[j];\n            }\n            columnIndex++;\n          }\n        }\n      }\n      return table5;\n    }\n    var to_grid_default = memoize_default(toGrid);\n    function getCellPosition(cell, tableGrid) {\n      var rowIndex, index;\n      if (!tableGrid) {\n        tableGrid = to_grid_default(find_up_default(cell, 'table'));\n      }\n      for (rowIndex = 0; rowIndex < tableGrid.length; rowIndex++) {\n        if (tableGrid[rowIndex]) {\n          index = tableGrid[rowIndex].indexOf(cell);\n          if (index !== -1) {\n            return {\n              x: index,\n              y: rowIndex\n            };\n          }\n        }\n      }\n    }\n    var get_cell_position_default = memoize_default(getCellPosition);\n    function getScope(cell) {\n      var scope = cell.getAttribute('scope');\n      var role = cell.getAttribute('role');\n      if (cell instanceof window.Element === false || [ 'TD', 'TH' ].indexOf(cell.nodeName.toUpperCase()) === -1) {\n        throw new TypeError('Expected TD or TH element');\n      }\n      if (role === 'columnheader') {\n        return 'col';\n      } else if (role === 'rowheader') {\n        return 'row';\n      } else if (scope === 'col' || scope === 'row') {\n        return scope;\n      } else if (cell.nodeName.toUpperCase() !== 'TH') {\n        return false;\n      }\n      var tableGrid = to_grid_default(find_up_default(cell, 'table'));\n      var pos = get_cell_position_default(cell, tableGrid);\n      var headerRow = tableGrid[pos.y].reduce(function(headerRow2, cell2) {\n        return headerRow2 && cell2.nodeName.toUpperCase() === 'TH';\n      }, true);\n      if (headerRow) {\n        return 'col';\n      }\n      var headerCol = tableGrid.map(function(col) {\n        return col[pos.x];\n      }).reduce(function(headerCol2, cell2) {\n        return headerCol2 && cell2 && cell2.nodeName.toUpperCase() === 'TH';\n      }, true);\n      if (headerCol) {\n        return 'row';\n      }\n      return 'auto';\n    }\n    var get_scope_default = getScope;\n    function isColumnHeader(element) {\n      return [ 'col', 'auto' ].indexOf(get_scope_default(element)) !== -1;\n    }\n    var is_column_header_default = isColumnHeader;\n    function isRowHeader(cell) {\n      return [ 'row', 'auto' ].includes(get_scope_default(cell));\n    }\n    var is_row_header_default = isRowHeader;\n    var sectioningElementSelector = get_elements_by_content_type_default('sectioning').map(function(nodeName2) {\n      return ''.concat(nodeName2, ':not([role])');\n    }).join(', ') + ' , main:not([role]), [role=article], [role=complementary], [role=main], [role=navigation], [role=region]';\n    function hasAccessibleName(vNode) {\n      var ariaLabelledby = sanitize_default(arialabelledby_text_default(vNode));\n      var ariaLabel = sanitize_default(arialabel_text_default(vNode));\n      return !!(ariaLabelledby || ariaLabel);\n    }\n    var implicitHtmlRoles = {\n      a: function a(vNode) {\n        return vNode.hasAttr('href') ? 'link' : null;\n      },\n      area: function area(vNode) {\n        return vNode.hasAttr('href') ? 'link' : null;\n      },\n      article: 'article',\n      aside: 'complementary',\n      body: 'document',\n      button: 'button',\n      datalist: 'listbox',\n      dd: 'definition',\n      dfn: 'term',\n      details: 'group',\n      dialog: 'dialog',\n      dt: 'term',\n      fieldset: 'group',\n      figure: 'figure',\n      footer: function footer(vNode) {\n        var sectioningElement = closest_default(vNode, sectioningElementSelector);\n        return !sectioningElement ? 'contentinfo' : null;\n      },\n      form: function form(vNode) {\n        return hasAccessibleName(vNode) ? 'form' : null;\n      },\n      h1: 'heading',\n      h2: 'heading',\n      h3: 'heading',\n      h4: 'heading',\n      h5: 'heading',\n      h6: 'heading',\n      header: function header(vNode) {\n        var sectioningElement = closest_default(vNode, sectioningElementSelector);\n        return !sectioningElement ? 'banner' : null;\n      },\n      hr: 'separator',\n      img: function img(vNode) {\n        var emptyAlt = vNode.hasAttr('alt') && !vNode.attr('alt');\n        var hasGlobalAria = get_global_aria_attrs_default().find(function(attr) {\n          return vNode.hasAttr(attr);\n        });\n        return emptyAlt && !hasGlobalAria && !is_focusable_default(vNode) ? 'presentation' : 'img';\n      },\n      input: function input(vNode) {\n        var suggestionsSourceElement;\n        if (vNode.hasAttr('list')) {\n          var listElement = idrefs_default(vNode.actualNode, 'list').filter(function(node) {\n            return !!node;\n          })[0];\n          suggestionsSourceElement = listElement && listElement.nodeName.toLowerCase() === 'datalist';\n        }\n        switch (vNode.props.type) {\n         case 'checkbox':\n          return 'checkbox';\n\n         case 'number':\n          return 'spinbutton';\n\n         case 'radio':\n          return 'radio';\n\n         case 'range':\n          return 'slider';\n\n         case 'search':\n          return !suggestionsSourceElement ? 'searchbox' : 'combobox';\n\n         case 'button':\n         case 'image':\n         case 'reset':\n         case 'submit':\n          return 'button';\n\n         case 'text':\n         case 'tel':\n         case 'url':\n         case 'email':\n         case '':\n          return !suggestionsSourceElement ? 'textbox' : 'combobox';\n\n         default:\n          return 'textbox';\n        }\n      },\n      li: 'listitem',\n      main: 'main',\n      math: 'math',\n      menu: 'list',\n      nav: 'navigation',\n      ol: 'list',\n      optgroup: 'group',\n      option: 'option',\n      output: 'status',\n      progress: 'progressbar',\n      section: function section(vNode) {\n        return hasAccessibleName(vNode) ? 'region' : null;\n      },\n      select: function select(vNode) {\n        return vNode.hasAttr('multiple') || parseInt(vNode.attr('size')) > 1 ? 'listbox' : 'combobox';\n      },\n      summary: 'button',\n      table: 'table',\n      tbody: 'rowgroup',\n      td: function td(vNode) {\n        var table5 = closest_default(vNode, 'table');\n        var role = get_explicit_role_default(table5);\n        return [ 'grid', 'treegrid' ].includes(role) ? 'gridcell' : 'cell';\n      },\n      textarea: 'textbox',\n      tfoot: 'rowgroup',\n      th: function th(vNode) {\n        if (is_column_header_default(vNode.actualNode)) {\n          return 'columnheader';\n        }\n        if (is_row_header_default(vNode.actualNode)) {\n          return 'rowheader';\n        }\n      },\n      thead: 'rowgroup',\n      tr: 'row',\n      ul: 'list'\n    };\n    var implicit_html_roles_default = implicitHtmlRoles;\n    function implicitRole(node) {\n      var vNode = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);\n      node = vNode.actualNode;\n      if (!vNode) {\n        throw new ReferenceError('Cannot get implicit role of a node outside the current scope.');\n      }\n      if (node && node.namespaceURI === 'http://www.w3.org/2000/svg') {\n        return null;\n      }\n      var nodeName2 = vNode.props.nodeName;\n      var role = implicit_html_roles_default[nodeName2];\n      if (!role) {\n        return null;\n      }\n      if (typeof role === 'function') {\n        return role(vNode);\n      }\n      return role;\n    }\n    var implicit_role_default = implicitRole;\n    var inheritsPresentationChain = {\n      td: [ 'tr' ],\n      th: [ 'tr' ],\n      tr: [ 'thead', 'tbody', 'tfoot', 'table' ],\n      thead: [ 'table' ],\n      tbody: [ 'table' ],\n      tfoot: [ 'table' ],\n      li: [ 'ol', 'ul' ],\n      dt: [ 'dl', 'div' ],\n      dd: [ 'dl', 'div' ],\n      div: [ 'dl' ]\n    };\n    function getInheritedRole(vNode, explicitRoleOptions) {\n      var parentNodeNames = inheritsPresentationChain[vNode.props.nodeName];\n      if (!parentNodeNames) {\n        return null;\n      }\n      if (!vNode.parent) {\n        throw new ReferenceError('Cannot determine role presentational inheritance of a required parent outside the current scope.');\n      }\n      if (!parentNodeNames.includes(vNode.parent.props.nodeName)) {\n        return null;\n      }\n      var parentRole = get_explicit_role_default(vNode.parent, explicitRoleOptions);\n      if ([ 'none', 'presentation' ].includes(parentRole) && !hasConflictResolution(vNode.parent)) {\n        return parentRole;\n      }\n      if (parentRole) {\n        return null;\n      }\n      return getInheritedRole(vNode.parent, explicitRoleOptions);\n    }\n    function resolveImplicitRole(vNode, explicitRoleOptions) {\n      var implicitRole3 = implicit_role_default(vNode);\n      if (!implicitRole3) {\n        return null;\n      }\n      var presentationalRole = getInheritedRole(vNode, explicitRoleOptions);\n      if (presentationalRole) {\n        return presentationalRole;\n      }\n      return implicitRole3;\n    }\n    function hasConflictResolution(vNode) {\n      var hasGlobalAria = get_global_aria_attrs_default().some(function(attr) {\n        return vNode.hasAttr(attr);\n      });\n      return hasGlobalAria || is_focusable_default(vNode);\n    }\n    function resolveRole(node) {\n      var _ref25 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var noImplicit = _ref25.noImplicit, explicitRoleOptions = _objectWithoutProperties(_ref25, [ 'noImplicit' ]);\n      var vNode = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);\n      if (vNode.props.nodeType !== 1) {\n        return null;\n      }\n      var explicitRole2 = get_explicit_role_default(vNode, explicitRoleOptions);\n      if (!explicitRole2) {\n        return noImplicit ? null : resolveImplicitRole(vNode, explicitRoleOptions);\n      }\n      if (![ 'presentation', 'none' ].includes(explicitRole2)) {\n        return explicitRole2;\n      }\n      if (hasConflictResolution(vNode)) {\n        return noImplicit ? null : resolveImplicitRole(vNode, explicitRoleOptions);\n      }\n      return explicitRole2;\n    }\n    function getRole(node) {\n      var _ref26 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var noPresentational = _ref26.noPresentational, options = _objectWithoutProperties(_ref26, [ 'noPresentational' ]);\n      var role = resolveRole(node, options);\n      if (noPresentational && [ 'presentation', 'none' ].includes(role)) {\n        return null;\n      }\n      return role;\n    }\n    var get_role_default = getRole;\n    function fromPrimative(someString, matcher) {\n      var matcherType = _typeof(matcher);\n      if (Array.isArray(matcher) && typeof someString !== 'undefined') {\n        return matcher.includes(someString);\n      }\n      if (matcherType === 'function') {\n        return !!matcher(someString);\n      }\n      if (someString !== null && someString !== void 0) {\n        if (matcher instanceof RegExp) {\n          return matcher.test(someString);\n        }\n        if (/^\\/.*\\/$/.test(matcher)) {\n          var pattern = matcher.substring(1, matcher.length - 1);\n          return new RegExp(pattern).test(someString);\n        }\n      }\n      return matcher === someString;\n    }\n    var from_primative_default = fromPrimative;\n    function fromFunction(getValue, matcher) {\n      var matcherType = _typeof(matcher);\n      if (matcherType !== 'object' || Array.isArray(matcher) || matcher instanceof RegExp) {\n        throw new Error('Expect matcher to be an object');\n      }\n      return Object.keys(matcher).every(function(propName) {\n        return from_primative_default(getValue(propName), matcher[propName]);\n      });\n    }\n    var from_function_default = fromFunction;\n    function attributes(vNode, matcher) {\n      if (!(vNode instanceof abstract_virtual_node_default)) {\n        vNode = get_node_from_tree_default(vNode);\n      }\n      return from_function_default(function(attrName) {\n        return vNode.attr(attrName);\n      }, matcher);\n    }\n    var attributes_default = attributes;\n    function condition(arg, condition4) {\n      return !!condition4(arg);\n    }\n    var condition_default = condition;\n    function explicitRole(vNode, matcher) {\n      return from_primative_default(get_explicit_role_default(vNode), matcher);\n    }\n    var explicit_role_default = explicitRole;\n    function implicitRole2(vNode, matcher) {\n      return from_primative_default(implicit_role_default(vNode), matcher);\n    }\n    var implicit_role_default2 = implicitRole2;\n    function nodeName(vNode, matcher) {\n      if (!(vNode instanceof abstract_virtual_node_default)) {\n        vNode = get_node_from_tree_default(vNode);\n      }\n      return from_primative_default(vNode.props.nodeName, matcher);\n    }\n    var node_name_default = nodeName;\n    function properties(vNode, matcher) {\n      if (!(vNode instanceof abstract_virtual_node_default)) {\n        vNode = get_node_from_tree_default(vNode);\n      }\n      return from_function_default(function(propName) {\n        return vNode.props[propName];\n      }, matcher);\n    }\n    var properties_default = properties;\n    function semanticRole(vNode, matcher) {\n      return from_primative_default(get_role_default(vNode), matcher);\n    }\n    var semantic_role_default = semanticRole;\n    var matchers = {\n      attributes: attributes_default,\n      condition: condition_default,\n      explicitRole: explicit_role_default,\n      implicitRole: implicit_role_default2,\n      nodeName: node_name_default,\n      properties: properties_default,\n      semanticRole: semantic_role_default\n    };\n    function fromDefinition(vNode, definition) {\n      if (!(vNode instanceof abstract_virtual_node_default)) {\n        vNode = get_node_from_tree_default(vNode);\n      }\n      if (Array.isArray(definition)) {\n        return definition.some(function(definitionItem) {\n          return fromDefinition(vNode, definitionItem);\n        });\n      }\n      if (typeof definition === 'string') {\n        return matches_default(vNode, definition);\n      }\n      return Object.keys(definition).every(function(matcherName) {\n        if (!matchers[matcherName]) {\n          throw new Error('Unknown matcher type \"'.concat(matcherName, '\"'));\n        }\n        var matchMethod = matchers[matcherName];\n        var matcher = definition[matcherName];\n        return matchMethod(vNode, matcher);\n      });\n    }\n    var from_definition_default = fromDefinition;\n    function matches5(vNode, definition) {\n      return from_definition_default(vNode, definition);\n    }\n    var matches_default2 = matches5;\n    matches_default2.attributes = attributes_default;\n    matches_default2.condition = condition_default;\n    matches_default2.explicitRole = explicit_role_default;\n    matches_default2.fromDefinition = from_definition_default;\n    matches_default2.fromFunction = from_function_default;\n    matches_default2.fromPrimative = from_primative_default;\n    matches_default2.implicitRole = implicit_role_default2;\n    matches_default2.nodeName = node_name_default;\n    matches_default2.properties = properties_default;\n    matches_default2.semanticRole = semantic_role_default;\n    var matches_default3 = matches_default2;\n    function getElementSpec(vNode) {\n      var standard = standards_default.htmlElms[vNode.props.nodeName];\n      if (!standard) {\n        return {};\n      }\n      if (!standard.variant) {\n        return standard;\n      }\n      var variant = standard.variant, spec = _objectWithoutProperties(standard, [ 'variant' ]);\n      for (var variantName in variant) {\n        if (!variant.hasOwnProperty(variantName) || variantName === 'default') {\n          continue;\n        }\n        var _variant$variantName = variant[variantName], matches14 = _variant$variantName.matches, props = _objectWithoutProperties(_variant$variantName, [ 'matches' ]);\n        if (matches_default3(vNode, matches14)) {\n          for (var propName in props) {\n            if (props.hasOwnProperty(propName)) {\n              spec[propName] = props[propName];\n            }\n          }\n        }\n      }\n      for (var _propName in variant['default']) {\n        if (variant['default'].hasOwnProperty(_propName) && typeof spec[_propName] === 'undefined') {\n          spec[_propName] = variant['default'][_propName];\n        }\n      }\n      return spec;\n    }\n    var get_element_spec_default = getElementSpec;\n    var alwaysTitleElements = [ 'iframe' ];\n    function titleText(node) {\n      var vNode = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);\n      if (vNode.props.nodeType !== 1 || !node.hasAttr('title')) {\n        return '';\n      }\n      if (!matches_default2(vNode, alwaysTitleElements) && [ 'none', 'presentation' ].includes(get_role_default(vNode))) {\n        return '';\n      }\n      return vNode.attr('title');\n    }\n    var title_text_default = titleText;\n    function namedFromContents(vNode) {\n      var _ref27 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, strict = _ref27.strict;\n      vNode = vNode instanceof abstract_virtual_node_default ? vNode : get_node_from_tree_default(vNode);\n      if (vNode.props.nodeType !== 1) {\n        return false;\n      }\n      var role = get_role_default(vNode);\n      var roleDef = standards_default.ariaRoles[role];\n      if (roleDef && roleDef.nameFromContent) {\n        return true;\n      }\n      if (strict) {\n        return false;\n      }\n      return !roleDef || [ 'presentation', 'none' ].includes(role);\n    }\n    var named_from_contents_default = namedFromContents;\n    function getOwnedVirtual(virtualNode) {\n      var actualNode = virtualNode.actualNode, children = virtualNode.children;\n      if (!children) {\n        throw new Error('getOwnedVirtual requires a virtual node');\n      }\n      if (virtualNode.hasAttr('aria-owns')) {\n        var owns = idrefs_default(actualNode, 'aria-owns').filter(function(element) {\n          return !!element;\n        }).map(function(element) {\n          return axe.utils.getNodeFromTree(element);\n        });\n        return [].concat(_toConsumableArray(children), _toConsumableArray(owns));\n      }\n      return _toConsumableArray(children);\n    }\n    var get_owned_virtual_default = getOwnedVirtual;\n    function subtreeText(virtualNode) {\n      var context3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var alreadyProcessed2 = accessible_text_virtual_default.alreadyProcessed;\n      context3.startNode = context3.startNode || virtualNode;\n      var _context = context3, strict = _context.strict, inControlContext = _context.inControlContext, inLabelledByContext = _context.inLabelledByContext;\n      if (alreadyProcessed2(virtualNode, context3) || virtualNode.props.nodeType !== 1) {\n        return '';\n      }\n      if (!named_from_contents_default(virtualNode, {\n        strict: strict\n      }) && !context3.subtreeDescendant) {\n        return '';\n      }\n      if (!strict) {\n        var subtreeDescendant = !inControlContext && !inLabelledByContext;\n        context3 = _extends({\n          subtreeDescendant: subtreeDescendant\n        }, context3);\n      }\n      return get_owned_virtual_default(virtualNode).reduce(function(contentText, child) {\n        return appendAccessibleText(contentText, child, context3);\n      }, '');\n    }\n    var phrasingElements = get_elements_by_content_type_default('phrasing').concat([ '#text' ]);\n    function appendAccessibleText(contentText, virtualNode, context3) {\n      var nodeName2 = virtualNode.props.nodeName;\n      var contentTextAdd = accessible_text_virtual_default(virtualNode, context3);\n      if (!contentTextAdd) {\n        return contentText;\n      }\n      if (!phrasingElements.includes(nodeName2)) {\n        if (contentTextAdd[0] !== ' ') {\n          contentTextAdd += ' ';\n        }\n        if (contentText && contentText[contentText.length - 1] !== ' ') {\n          contentTextAdd = ' ' + contentTextAdd;\n        }\n      }\n      return contentText + contentTextAdd;\n    }\n    var subtree_text_default = subtreeText;\n    function labelText(virtualNode) {\n      var context3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var alreadyProcessed2 = accessible_text_virtual_default.alreadyProcessed;\n      if (context3.inControlContext || context3.inLabelledByContext || alreadyProcessed2(virtualNode, context3)) {\n        return '';\n      }\n      if (!context3.startNode) {\n        context3.startNode = virtualNode;\n      }\n      var labelContext = _extends({\n        inControlContext: true\n      }, context3);\n      var explicitLabels = getExplicitLabels(virtualNode);\n      var implicitLabel = closest_default(virtualNode, 'label');\n      var labels;\n      if (implicitLabel) {\n        labels = [].concat(_toConsumableArray(explicitLabels), [ implicitLabel.actualNode ]);\n        labels.sort(node_sorter_default);\n      } else {\n        labels = explicitLabels;\n      }\n      return labels.map(function(label5) {\n        return accessible_text_default(label5, labelContext);\n      }).filter(function(text32) {\n        return text32 !== '';\n      }).join(' ');\n    }\n    function getExplicitLabels(virtualNode) {\n      if (!virtualNode.attr('id')) {\n        return [];\n      }\n      if (!virtualNode.actualNode) {\n        throw new TypeError('Cannot resolve explicit label reference for non-DOM nodes');\n      }\n      return find_elms_in_context_default({\n        elm: 'label',\n        attr: 'for',\n        value: virtualNode.attr('id'),\n        context: virtualNode.actualNode\n      });\n    }\n    var label_text_default = labelText;\n    var defaultButtonValues = {\n      submit: 'Submit',\n      image: 'Submit',\n      reset: 'Reset',\n      button: ''\n    };\n    var nativeTextMethods = {\n      valueText: function valueText(_ref28) {\n        var actualNode = _ref28.actualNode;\n        return actualNode.value || '';\n      },\n      buttonDefaultText: function buttonDefaultText(_ref29) {\n        var actualNode = _ref29.actualNode;\n        return defaultButtonValues[actualNode.type] || '';\n      },\n      tableCaptionText: descendantText.bind(null, 'caption'),\n      figureText: descendantText.bind(null, 'figcaption'),\n      svgTitleText: descendantText.bind(null, 'title'),\n      fieldsetLegendText: descendantText.bind(null, 'legend'),\n      altText: attrText.bind(null, 'alt'),\n      tableSummaryText: attrText.bind(null, 'summary'),\n      titleText: title_text_default,\n      subtreeText: subtree_text_default,\n      labelText: label_text_default,\n      singleSpace: function singleSpace() {\n        return ' ';\n      },\n      placeholderText: attrText.bind(null, 'placeholder')\n    };\n    function attrText(attr, vNode) {\n      return vNode.attr(attr) || '';\n    }\n    function descendantText(nodeName2, _ref30, context3) {\n      var actualNode = _ref30.actualNode;\n      nodeName2 = nodeName2.toLowerCase();\n      var nodeNames = [ nodeName2, actualNode.nodeName.toLowerCase() ].join(',');\n      var candidate = actualNode.querySelector(nodeNames);\n      if (!candidate || candidate.nodeName.toLowerCase() !== nodeName2) {\n        return '';\n      }\n      return accessible_text_default(candidate, context3);\n    }\n    var native_text_methods_default = nativeTextMethods;\n    function nativeTextAlternative(virtualNode) {\n      var context3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var actualNode = virtualNode.actualNode;\n      if (virtualNode.props.nodeType !== 1 || [ 'presentation', 'none' ].includes(get_role_default(virtualNode))) {\n        return '';\n      }\n      var textMethods = findTextMethods(virtualNode);\n      var accName = textMethods.reduce(function(accName2, step) {\n        return accName2 || step(virtualNode, context3);\n      }, '');\n      if (context3.debug) {\n        axe.log(accName || '{empty-value}', actualNode, context3);\n      }\n      return accName;\n    }\n    function findTextMethods(virtualNode) {\n      var elmSpec = get_element_spec_default(virtualNode);\n      var methods = elmSpec.namingMethods || [];\n      return methods.map(function(methodName) {\n        return native_text_methods_default[methodName];\n      });\n    }\n    var native_text_alternative_default = nativeTextAlternative;\n    var unsupported = {\n      accessibleNameFromFieldValue: [ 'combobox', 'listbox', 'progressbar' ]\n    };\n    var unsupported_default = unsupported;\n    var nonTextInputTypes = [ 'button', 'checkbox', 'color', 'file', 'hidden', 'image', 'password', 'radio', 'reset', 'submit' ];\n    function isNativeTextbox(node) {\n      node = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);\n      var nodeName2 = node.props.nodeName;\n      return nodeName2 === 'textarea' || nodeName2 === 'input' && !nonTextInputTypes.includes((node.attr('type') || '').toLowerCase());\n    }\n    var is_native_textbox_default = isNativeTextbox;\n    function isNativeSelect(node) {\n      node = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);\n      var nodeName2 = node.props.nodeName;\n      return nodeName2 === 'select';\n    }\n    var is_native_select_default = isNativeSelect;\n    function isAriaTextbox(node) {\n      var role = get_explicit_role_default(node);\n      return role === 'textbox';\n    }\n    var is_aria_textbox_default = isAriaTextbox;\n    function isAriaListbox(node) {\n      var role = get_explicit_role_default(node);\n      return role === 'listbox';\n    }\n    var is_aria_listbox_default = isAriaListbox;\n    function isAriaCombobox(node) {\n      var role = get_explicit_role_default(node);\n      return role === 'combobox';\n    }\n    var is_aria_combobox_default = isAriaCombobox;\n    var rangeRoles = [ 'progressbar', 'scrollbar', 'slider', 'spinbutton' ];\n    function isAriaRange(node) {\n      var role = get_explicit_role_default(node);\n      return rangeRoles.includes(role);\n    }\n    var is_aria_range_default = isAriaRange;\n    var controlValueRoles = [ 'textbox', 'progressbar', 'scrollbar', 'slider', 'spinbutton', 'combobox', 'listbox' ];\n    var _formControlValueMethods = {\n      nativeTextboxValue: nativeTextboxValue,\n      nativeSelectValue: nativeSelectValue,\n      ariaTextboxValue: ariaTextboxValue,\n      ariaListboxValue: ariaListboxValue,\n      ariaComboboxValue: ariaComboboxValue,\n      ariaRangeValue: ariaRangeValue\n    };\n    function formControlValue(virtualNode) {\n      var context3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var actualNode = virtualNode.actualNode;\n      var unsupportedRoles = unsupported_default.accessibleNameFromFieldValue || [];\n      var role = get_role_default(virtualNode);\n      if (context3.startNode === virtualNode || !controlValueRoles.includes(role) || unsupportedRoles.includes(role)) {\n        return '';\n      }\n      var valueMethods = Object.keys(_formControlValueMethods).map(function(name) {\n        return _formControlValueMethods[name];\n      });\n      var valueString = valueMethods.reduce(function(accName, step) {\n        return accName || step(virtualNode, context3);\n      }, '');\n      if (context3.debug) {\n        log_default(valueString || '{empty-value}', actualNode, context3);\n      }\n      return valueString;\n    }\n    function nativeTextboxValue(node) {\n      var vNode = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);\n      if (is_native_textbox_default(vNode)) {\n        return vNode.props.value || '';\n      }\n      return '';\n    }\n    function nativeSelectValue(node) {\n      var vNode = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);\n      if (!is_native_select_default(vNode)) {\n        return '';\n      }\n      var options = query_selector_all_default(vNode, 'option');\n      var selectedOptions = options.filter(function(option) {\n        return option.hasAttr('selected');\n      });\n      if (!selectedOptions.length) {\n        selectedOptions.push(options[0]);\n      }\n      return selectedOptions.map(function(option) {\n        return visible_virtual_default(option);\n      }).join(' ') || '';\n    }\n    function ariaTextboxValue(node) {\n      var vNode = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);\n      var actualNode = vNode.actualNode;\n      if (!is_aria_textbox_default(vNode)) {\n        return '';\n      }\n      if (!actualNode || actualNode && !is_hidden_with_css_default(actualNode)) {\n        return visible_virtual_default(vNode, true);\n      } else {\n        return actualNode.textContent;\n      }\n    }\n    function ariaListboxValue(node, context3) {\n      var vNode = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);\n      if (!is_aria_listbox_default(vNode)) {\n        return '';\n      }\n      var selected = get_owned_virtual_default(vNode).filter(function(owned) {\n        return get_role_default(owned) === 'option' && owned.attr('aria-selected') === 'true';\n      });\n      if (selected.length === 0) {\n        return '';\n      }\n      return accessible_text_virtual_default(selected[0], context3);\n    }\n    function ariaComboboxValue(node, context3) {\n      var vNode = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);\n      if (!is_aria_combobox_default(vNode)) {\n        return '';\n      }\n      var listbox = get_owned_virtual_default(vNode).filter(function(elm) {\n        return get_role_default(elm) === 'listbox';\n      })[0];\n      return listbox ? ariaListboxValue(listbox, context3) : '';\n    }\n    function ariaRangeValue(node) {\n      var vNode = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);\n      if (!is_aria_range_default(vNode) || !vNode.hasAttr('aria-valuenow')) {\n        return '';\n      }\n      var valueNow = +vNode.attr('aria-valuenow');\n      return !isNaN(valueNow) ? String(valueNow) : '0';\n    }\n    var form_control_value_default = formControlValue;\n    function accessibleTextVirtual(virtualNode) {\n      var context3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var actualNode = virtualNode.actualNode;\n      context3 = prepareContext(virtualNode, context3);\n      if (shouldIgnoreHidden(virtualNode, context3)) {\n        return '';\n      }\n      var computationSteps = [ arialabelledby_text_default, arialabel_text_default, native_text_alternative_default, form_control_value_default, subtree_text_default, textNodeValue, title_text_default ];\n      var accName = computationSteps.reduce(function(accName2, step) {\n        if (context3.startNode === virtualNode) {\n          accName2 = sanitize_default(accName2);\n        }\n        if (accName2 !== '') {\n          return accName2;\n        }\n        return step(virtualNode, context3);\n      }, '');\n      if (context3.debug) {\n        axe.log(accName || '{empty-value}', actualNode, context3);\n      }\n      return accName;\n    }\n    function textNodeValue(virtualNode) {\n      if (virtualNode.props.nodeType !== 3) {\n        return '';\n      }\n      return virtualNode.props.nodeValue;\n    }\n    function shouldIgnoreHidden(_ref31, context3) {\n      var actualNode = _ref31.actualNode;\n      if (!actualNode) {\n        return false;\n      }\n      if (actualNode.nodeType !== 1 || context3.includeHidden) {\n        return false;\n      }\n      return !is_visible_default(actualNode, true);\n    }\n    function prepareContext(virtualNode, context3) {\n      var actualNode = virtualNode.actualNode;\n      if (!context3.startNode) {\n        context3 = _extends({\n          startNode: virtualNode\n        }, context3);\n      }\n      if (!actualNode) {\n        return context3;\n      }\n      if (actualNode.nodeType === 1 && context3.inLabelledByContext && context3.includeHidden === void 0) {\n        context3 = _extends({\n          includeHidden: !is_visible_default(actualNode, true)\n        }, context3);\n      }\n      return context3;\n    }\n    accessibleTextVirtual.alreadyProcessed = function alreadyProcessed(virtualnode, context3) {\n      context3.processed = context3.processed || [];\n      if (context3.processed.includes(virtualnode)) {\n        return true;\n      }\n      context3.processed.push(virtualnode);\n      return false;\n    };\n    var accessible_text_virtual_default = accessibleTextVirtual;\n    function accessibleText(element, context3) {\n      var virtualNode = get_node_from_tree_default(element);\n      return accessible_text_virtual_default(virtualNode, context3);\n    }\n    var accessible_text_default = accessibleText;\n    function arialabelledbyText(vNode) {\n      var context3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      if (!(vNode instanceof abstract_virtual_node_default)) {\n        if (vNode.nodeType !== 1) {\n          return '';\n        }\n        vNode = get_node_from_tree_default(vNode);\n      }\n      if (vNode.props.nodeType !== 1 || context3.inLabelledByContext || context3.inControlContext || !vNode.attr('aria-labelledby')) {\n        return '';\n      }\n      var refs = idrefs_default(vNode, 'aria-labelledby').filter(function(elm) {\n        return elm;\n      });\n      return refs.reduce(function(accessibleName, elm) {\n        var accessibleNameAdd = accessible_text_default(elm, _extends({\n          inLabelledByContext: true,\n          startNode: context3.startNode || vNode\n        }, context3));\n        if (!accessibleName) {\n          return accessibleNameAdd;\n        } else {\n          return ''.concat(accessibleName, ' ').concat(accessibleNameAdd);\n        }\n      }, '');\n    }\n    var arialabelledby_text_default = arialabelledbyText;\n    var text_exports = {};\n    __export(text_exports, {\n      accessibleText: function accessibleText() {\n        return accessible_text_default;\n      },\n      accessibleTextVirtual: function accessibleTextVirtual() {\n        return accessible_text_virtual_default;\n      },\n      autocomplete: function autocomplete() {\n        return _autocomplete;\n      },\n      formControlValue: function formControlValue() {\n        return form_control_value_default;\n      },\n      formControlValueMethods: function formControlValueMethods() {\n        return _formControlValueMethods;\n      },\n      hasUnicode: function hasUnicode() {\n        return has_unicode_default;\n      },\n      isHumanInterpretable: function isHumanInterpretable() {\n        return is_human_interpretable_default;\n      },\n      isIconLigature: function isIconLigature() {\n        return is_icon_ligature_default;\n      },\n      isValidAutocomplete: function isValidAutocomplete() {\n        return is_valid_autocomplete_default;\n      },\n      label: function label() {\n        return label_default;\n      },\n      labelText: function labelText() {\n        return label_text_default;\n      },\n      labelVirtual: function labelVirtual() {\n        return label_virtual_default2;\n      },\n      nativeElementType: function nativeElementType() {\n        return native_element_type_default;\n      },\n      nativeTextAlternative: function nativeTextAlternative() {\n        return native_text_alternative_default;\n      },\n      nativeTextMethods: function nativeTextMethods() {\n        return native_text_methods_default;\n      },\n      removeUnicode: function removeUnicode() {\n        return remove_unicode_default;\n      },\n      sanitize: function sanitize() {\n        return sanitize_default;\n      },\n      subtreeText: function subtreeText() {\n        return subtree_text_default;\n      },\n      titleText: function titleText() {\n        return title_text_default;\n      },\n      unsupported: function unsupported() {\n        return unsupported_default;\n      },\n      visible: function visible() {\n        return visible_default;\n      },\n      visibleTextNodes: function visibleTextNodes() {\n        return visible_text_nodes_default;\n      },\n      visibleVirtual: function visibleVirtual() {\n        return visible_virtual_default;\n      }\n    });\n    function getUnicodeNonBmpRegExp() {\n      return /[\\u1D00-\\u1D7F\\u1D80-\\u1DBF\\u1DC0-\\u1DFF\\u20A0-\\u20CF\\u20D0-\\u20FF\\u2100-\\u214F\\u2150-\\u218F\\u2190-\\u21FF\\u2200-\\u22FF\\u2300-\\u23FF\\u2400-\\u243F\\u2440-\\u245F\\u2460-\\u24FF\\u2500-\\u257F\\u2580-\\u259F\\u25A0-\\u25FF\\u2600-\\u26FF\\u2700-\\u27BF\\uE000-\\uF8FF]/g;\n    }\n    function getPunctuationRegExp() {\n      return /[\\u2000-\\u206F\\u2E00-\\u2E7F\\\\'!\"#$%&\\xa3\\xa2\\xa5\\xa7\\u20ac()*+,\\-.\\/:;<=>?@\\[\\]^_`{|}~\\xb1]/g;\n    }\n    function getSupplementaryPrivateUseRegExp() {\n      return /[\\uDB80-\\uDBBF][\\uDC00-\\uDFFF]/g;\n    }\n    var emoji_regex = __toModule(require_emoji_regex());\n    function hasUnicode(str, options) {\n      var emoji = options.emoji, nonBmp = options.nonBmp, punctuations = options.punctuations;\n      if (emoji) {\n        return emoji_regex['default']().test(str);\n      }\n      if (nonBmp) {\n        return getUnicodeNonBmpRegExp().test(str) || getSupplementaryPrivateUseRegExp().test(str);\n      }\n      if (punctuations) {\n        return getPunctuationRegExp().test(str);\n      }\n      return false;\n    }\n    var has_unicode_default = hasUnicode;\n    var emoji_regex2 = __toModule(require_emoji_regex());\n    function removeUnicode(str, options) {\n      var emoji = options.emoji, nonBmp = options.nonBmp, punctuations = options.punctuations;\n      if (emoji) {\n        str = str.replace(emoji_regex2['default'](), '');\n      }\n      if (nonBmp) {\n        str = str.replace(getUnicodeNonBmpRegExp(), '');\n        str = str.replace(getSupplementaryPrivateUseRegExp(), '');\n      }\n      if (punctuations) {\n        str = str.replace(getPunctuationRegExp(), '');\n      }\n      return str;\n    }\n    var remove_unicode_default = removeUnicode;\n    function isHumanInterpretable(str) {\n      if (!str.length) {\n        return 0;\n      }\n      var alphaNumericIconMap = [ 'x', 'i' ];\n      if (alphaNumericIconMap.includes(str)) {\n        return 0;\n      }\n      var noUnicodeStr = remove_unicode_default(str, {\n        emoji: true,\n        nonBmp: true,\n        punctuations: true\n      });\n      if (!sanitize_default(noUnicodeStr)) {\n        return 0;\n      }\n      return 1;\n    }\n    var is_human_interpretable_default = isHumanInterpretable;\n    function isIconLigature(textVNode) {\n      var differenceThreshold = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : .15;\n      var occuranceThreshold = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 3;\n      var nodeValue = textVNode.actualNode.nodeValue.trim();\n      if (!sanitize_default(nodeValue) || has_unicode_default(nodeValue, {\n        emoji: true,\n        nonBmp: true\n      })) {\n        return false;\n      }\n      if (!cache_default.get('canvasContext')) {\n        cache_default.set('canvasContext', document.createElement('canvas').getContext('2d'));\n      }\n      var canvasContext = cache_default.get('canvasContext');\n      var canvas = canvasContext.canvas;\n      if (!cache_default.get('fonts')) {\n        cache_default.set('fonts', {});\n      }\n      var fonts = cache_default.get('fonts');\n      var style = window.getComputedStyle(textVNode.parent.actualNode);\n      var fontFamily = style.getPropertyValue('font-family');\n      if (!fonts[fontFamily]) {\n        fonts[fontFamily] = {\n          occurances: 0,\n          numLigatures: 0\n        };\n      }\n      var font = fonts[fontFamily];\n      if (font.occurances >= occuranceThreshold) {\n        if (font.numLigatures / font.occurances === 1) {\n          return true;\n        } else if (font.numLigatures === 0) {\n          return false;\n        }\n      }\n      font.occurances++;\n      var fontSize = 30;\n      var fontStyle = ''.concat(fontSize, 'px ').concat(fontFamily);\n      canvasContext.font = fontStyle;\n      var firstChar = nodeValue.charAt(0);\n      var width = canvasContext.measureText(firstChar).width;\n      if (width < 30) {\n        var diff = 30 / width;\n        width *= diff;\n        fontSize *= diff;\n        fontStyle = ''.concat(fontSize, 'px ').concat(fontFamily);\n      }\n      canvas.width = width;\n      canvas.height = fontSize;\n      canvasContext.font = fontStyle;\n      canvasContext.textAlign = 'left';\n      canvasContext.textBaseline = 'top';\n      canvasContext.fillText(firstChar, 0, 0);\n      var compareData = new Uint32Array(canvasContext.getImageData(0, 0, width, fontSize).data.buffer);\n      if (!compareData.some(function(pixel) {\n        return pixel;\n      })) {\n        font.numLigatures++;\n        return true;\n      }\n      canvasContext.clearRect(0, 0, width, fontSize);\n      canvasContext.fillText(nodeValue, 0, 0);\n      var compareWith = new Uint32Array(canvasContext.getImageData(0, 0, width, fontSize).data.buffer);\n      var differences = compareData.reduce(function(diff, pixel, i) {\n        if (pixel === 0 && compareWith[i] === 0) {\n          return diff;\n        }\n        if (pixel !== 0 && compareWith[i] !== 0) {\n          return diff;\n        }\n        return ++diff;\n      }, 0);\n      var expectedWidth = nodeValue.split('').reduce(function(width2, _char3) {\n        return width2 + canvasContext.measureText(_char3).width;\n      }, 0);\n      var actualWidth = canvasContext.measureText(nodeValue).width;\n      var pixelDifference = differences / compareData.length;\n      var sizeDifference = 1 - actualWidth / expectedWidth;\n      if (pixelDifference >= differenceThreshold && sizeDifference >= differenceThreshold) {\n        font.numLigatures++;\n        return true;\n      }\n      return false;\n    }\n    var is_icon_ligature_default = isIconLigature;\n    var _autocomplete = {\n      stateTerms: [ 'on', 'off' ],\n      standaloneTerms: [ 'name', 'honorific-prefix', 'given-name', 'additional-name', 'family-name', 'honorific-suffix', 'nickname', 'username', 'new-password', 'current-password', 'organization-title', 'organization', 'street-address', 'address-line1', 'address-line2', 'address-line3', 'address-level4', 'address-level3', 'address-level2', 'address-level1', 'country', 'country-name', 'postal-code', 'cc-name', 'cc-given-name', 'cc-additional-name', 'cc-family-name', 'cc-number', 'cc-exp', 'cc-exp-month', 'cc-exp-year', 'cc-csc', 'cc-type', 'transaction-currency', 'transaction-amount', 'language', 'bday', 'bday-day', 'bday-month', 'bday-year', 'sex', 'url', 'photo', 'one-time-code' ],\n      qualifiers: [ 'home', 'work', 'mobile', 'fax', 'pager' ],\n      qualifiedTerms: [ 'tel', 'tel-country-code', 'tel-national', 'tel-area-code', 'tel-local', 'tel-local-prefix', 'tel-local-suffix', 'tel-extension', 'email', 'impp' ],\n      locations: [ 'billing', 'shipping' ]\n    };\n    function isValidAutocomplete(autocompleteValue) {\n      var _ref32 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref32$looseTyped = _ref32.looseTyped, looseTyped = _ref32$looseTyped === void 0 ? false : _ref32$looseTyped, _ref32$stateTerms = _ref32.stateTerms, stateTerms = _ref32$stateTerms === void 0 ? [] : _ref32$stateTerms, _ref32$locations = _ref32.locations, locations = _ref32$locations === void 0 ? [] : _ref32$locations, _ref32$qualifiers = _ref32.qualifiers, qualifiers = _ref32$qualifiers === void 0 ? [] : _ref32$qualifiers, _ref32$standaloneTerm = _ref32.standaloneTerms, standaloneTerms = _ref32$standaloneTerm === void 0 ? [] : _ref32$standaloneTerm, _ref32$qualifiedTerms = _ref32.qualifiedTerms, qualifiedTerms = _ref32$qualifiedTerms === void 0 ? [] : _ref32$qualifiedTerms;\n      autocompleteValue = autocompleteValue.toLowerCase().trim();\n      stateTerms = stateTerms.concat(_autocomplete.stateTerms);\n      if (stateTerms.includes(autocompleteValue) || autocompleteValue === '') {\n        return true;\n      }\n      qualifiers = qualifiers.concat(_autocomplete.qualifiers);\n      locations = locations.concat(_autocomplete.locations);\n      standaloneTerms = standaloneTerms.concat(_autocomplete.standaloneTerms);\n      qualifiedTerms = qualifiedTerms.concat(_autocomplete.qualifiedTerms);\n      var autocompleteTerms = autocompleteValue.split(/\\s+/g);\n      if (!looseTyped) {\n        if (autocompleteTerms[0].length > 8 && autocompleteTerms[0].substr(0, 8) === 'section-') {\n          autocompleteTerms.shift();\n        }\n        if (locations.includes(autocompleteTerms[0])) {\n          autocompleteTerms.shift();\n        }\n        if (qualifiers.includes(autocompleteTerms[0])) {\n          autocompleteTerms.shift();\n          standaloneTerms = [];\n        }\n        if (autocompleteTerms.length !== 1) {\n          return false;\n        }\n      }\n      var purposeTerm = autocompleteTerms[autocompleteTerms.length - 1];\n      return standaloneTerms.includes(purposeTerm) || qualifiedTerms.includes(purposeTerm);\n    }\n    var is_valid_autocomplete_default = isValidAutocomplete;\n    function visible(element, screenReader, noRecursing) {\n      element = get_node_from_tree_default(element);\n      return visible_virtual_default(element, screenReader, noRecursing);\n    }\n    var visible_default = visible;\n    function labelVirtual2(virtualNode) {\n      var ref, candidate, doc;\n      candidate = label_virtual_default(virtualNode);\n      if (candidate) {\n        return candidate;\n      }\n      if (virtualNode.attr('id')) {\n        if (!virtualNode.actualNode) {\n          throw new TypeError('Cannot resolve explicit label reference for non-DOM nodes');\n        }\n        var id = escape_selector_default(virtualNode.attr('id'));\n        doc = get_root_node_default2(virtualNode.actualNode);\n        ref = doc.querySelector('label[for=\"' + id + '\"]');\n        candidate = ref && visible_default(ref, true);\n        if (candidate) {\n          return candidate;\n        }\n      }\n      ref = closest_default(virtualNode, 'label');\n      candidate = ref && visible_virtual_default(ref, true);\n      if (candidate) {\n        return candidate;\n      }\n      return null;\n    }\n    var label_virtual_default2 = labelVirtual2;\n    function label(node) {\n      node = get_node_from_tree_default(node);\n      return label_virtual_default2(node);\n    }\n    var label_default = label;\n    var nativeElementType = [ {\n      matches: [ {\n        nodeName: 'textarea'\n      }, {\n        nodeName: 'input',\n        properties: {\n          type: [ 'text', 'password', 'search', 'tel', 'email', 'url' ]\n        }\n      } ],\n      namingMethods: 'labelText'\n    }, {\n      matches: {\n        nodeName: 'input',\n        properties: {\n          type: [ 'button', 'submit', 'reset' ]\n        }\n      },\n      namingMethods: [ 'valueText', 'titleText', 'buttonDefaultText' ]\n    }, {\n      matches: {\n        nodeName: 'input',\n        properties: {\n          type: 'image'\n        }\n      },\n      namingMethods: [ 'altText', 'valueText', 'labelText', 'titleText', 'buttonDefaultText' ]\n    }, {\n      matches: 'button',\n      namingMethods: 'subtreeText'\n    }, {\n      matches: 'fieldset',\n      namingMethods: 'fieldsetLegendText'\n    }, {\n      matches: 'OUTPUT',\n      namingMethods: 'subtreeText'\n    }, {\n      matches: [ {\n        nodeName: 'select'\n      }, {\n        nodeName: 'input',\n        properties: {\n          type: /^(?!text|password|search|tel|email|url|button|submit|reset)/\n        }\n      } ],\n      namingMethods: 'labelText'\n    }, {\n      matches: 'summary',\n      namingMethods: 'subtreeText'\n    }, {\n      matches: 'figure',\n      namingMethods: [ 'figureText', 'titleText' ]\n    }, {\n      matches: 'img',\n      namingMethods: 'altText'\n    }, {\n      matches: 'table',\n      namingMethods: [ 'tableCaptionText', 'tableSummaryText' ]\n    }, {\n      matches: [ 'hr', 'br' ],\n      namingMethods: [ 'titleText', 'singleSpace' ]\n    } ];\n    var native_element_type_default = nativeElementType;\n    function visibleTextNodes(vNode) {\n      var parentVisible = is_visible_default(vNode.actualNode);\n      var nodes = [];\n      vNode.children.forEach(function(child) {\n        if (child.actualNode.nodeType === 3) {\n          if (parentVisible) {\n            nodes.push(child);\n          }\n        } else {\n          nodes = nodes.concat(visibleTextNodes(child));\n        }\n      });\n      return nodes;\n    }\n    var visible_text_nodes_default = visibleTextNodes;\n    var idRefsRegex = /^idrefs?$/;\n    function cacheIdRefs(node, idRefs, refAttrs) {\n      if (node.hasAttribute) {\n        if (node.nodeName.toUpperCase() === 'LABEL' && node.hasAttribute('for')) {\n          var id = node.getAttribute('for');\n          idRefs[id] = idRefs[id] || [];\n          idRefs[id].push(node);\n        }\n        for (var _i11 = 0; _i11 < refAttrs.length; ++_i11) {\n          var attr = refAttrs[_i11];\n          var attrValue = sanitize_default(node.getAttribute(attr) || '');\n          if (!attrValue) {\n            continue;\n          }\n          var tokens = token_list_default(attrValue);\n          for (var k = 0; k < tokens.length; ++k) {\n            idRefs[tokens[k]] = idRefs[tokens[k]] || [];\n            idRefs[tokens[k]].push(node);\n          }\n        }\n      }\n      for (var _i12 = 0; _i12 < node.children.length; _i12++) {\n        cacheIdRefs(node.children[_i12], idRefs, refAttrs);\n      }\n    }\n    function getAccessibleRefs(node) {\n      node = node.actualNode || node;\n      var root = get_root_node_default2(node);\n      root = root.documentElement || root;\n      var idRefsByRoot = cache_default.get('idRefsByRoot');\n      if (!idRefsByRoot) {\n        idRefsByRoot = new WeakMap();\n        cache_default.set('idRefsByRoot', idRefsByRoot);\n      }\n      var idRefs = idRefsByRoot.get(root);\n      if (!idRefs) {\n        idRefs = {};\n        idRefsByRoot.set(root, idRefs);\n        var refAttrs = Object.keys(standards_default.ariaAttrs).filter(function(attr) {\n          var type = standards_default.ariaAttrs[attr].type;\n          return idRefsRegex.test(type);\n        });\n        cacheIdRefs(root, idRefs, refAttrs);\n      }\n      return idRefs[node.id] || [];\n    }\n    var get_accessible_refs_default = getAccessibleRefs;\n    function getRoleType(role) {\n      var roleDef = standards_default.ariaRoles[role];\n      if (!roleDef) {\n        return null;\n      }\n      return roleDef.type;\n    }\n    var get_role_type_default = getRoleType;\n    function isAriaRoleAllowedOnElement(node, role) {\n      var vNode = node instanceof abstract_virtual_node_default ? node : get_node_from_tree_default(node);\n      var implicitRole3 = implicit_role_default(vNode);\n      if (role === implicitRole3) {\n        return true;\n      }\n      var spec = get_element_spec_default(vNode);\n      if (Array.isArray(spec.allowedRoles)) {\n        return spec.allowedRoles.includes(role);\n      }\n      return !!spec.allowedRoles;\n    }\n    var is_aria_role_allowed_on_element_default = isAriaRoleAllowedOnElement;\n    var dpubRoles2 = [ 'doc-backlink', 'doc-biblioentry', 'doc-biblioref', 'doc-cover', 'doc-endnote', 'doc-glossref', 'doc-noteref' ];\n    function getRoleSegments(node) {\n      var roles = [];\n      if (!node) {\n        return roles;\n      }\n      if (node.hasAttribute('role')) {\n        var nodeRoles = token_list_default(node.getAttribute('role').toLowerCase());\n        roles = roles.concat(nodeRoles);\n      }\n      if (node.hasAttributeNS('http://www.idpf.org/2007/ops', 'type')) {\n        var epubRoles = token_list_default(node.getAttributeNS('http://www.idpf.org/2007/ops', 'type').toLowerCase()).map(function(role) {\n          return 'doc-'.concat(role);\n        });\n        roles = roles.concat(epubRoles);\n      }\n      roles = roles.filter(function(role) {\n        return is_valid_role_default(role);\n      });\n      return roles;\n    }\n    function getElementUnallowedRoles(node) {\n      var allowImplicit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n      var tagName = node.nodeName.toUpperCase();\n      if (!is_html_element_default(node)) {\n        return [];\n      }\n      var roleSegments = getRoleSegments(node);\n      var implicitRole3 = implicit_role_default(node);\n      var unallowedRoles = roleSegments.filter(function(role) {\n        if (allowImplicit && role === implicitRole3) {\n          return false;\n        }\n        if (allowImplicit && dpubRoles2.includes(role)) {\n          var roleType = get_role_type_default(role);\n          if (implicitRole3 !== roleType) {\n            return true;\n          }\n        }\n        if (!allowImplicit && !(role === 'row' && tagName === 'TR' && element_matches_default(node, 'table[role=\"grid\"] > tr'))) {\n          return true;\n        }\n        return !is_aria_role_allowed_on_element_default(node, role);\n      });\n      return unallowedRoles;\n    }\n    var get_element_unallowed_roles_default = getElementUnallowedRoles;\n    function getAriaRolesByType(type) {\n      return Object.keys(standards_default.ariaRoles).filter(function(roleName) {\n        return standards_default.ariaRoles[roleName].type === type;\n      });\n    }\n    var get_aria_roles_by_type_default = getAriaRolesByType;\n    function getRolesByType(roleType) {\n      return get_aria_roles_by_type_default(roleType);\n    }\n    var get_roles_by_type_default = getRolesByType;\n    function getAriaRolesSupportingNameFromContent() {\n      if (cache_default.get('ariaRolesNameFromContent')) {\n        return cache_default.get('ariaRolesNameFromContent');\n      }\n      var contentRoles = Object.keys(standards_default.ariaRoles).filter(function(roleName) {\n        return standards_default.ariaRoles[roleName].nameFromContent;\n      });\n      cache_default.set('ariaRolesNameFromContent', contentRoles);\n      return contentRoles;\n    }\n    var get_aria_roles_supporting_name_from_content_default = getAriaRolesSupportingNameFromContent;\n    function getRolesWithNameFromContents() {\n      return get_aria_roles_supporting_name_from_content_default();\n    }\n    var get_roles_with_name_from_contents_default = getRolesWithNameFromContents;\n    var isNull = function isNull(value) {\n      return value === null;\n    };\n    var isNotNull = function isNotNull(value) {\n      return value !== null;\n    };\n    var lookupTable = {};\n    lookupTable.attributes = {\n      'aria-activedescendant': {\n        type: 'idref',\n        allowEmpty: true,\n        unsupported: false\n      },\n      'aria-atomic': {\n        type: 'boolean',\n        values: [ 'true', 'false' ],\n        unsupported: false\n      },\n      'aria-autocomplete': {\n        type: 'nmtoken',\n        values: [ 'inline', 'list', 'both', 'none' ],\n        unsupported: false\n      },\n      'aria-busy': {\n        type: 'boolean',\n        values: [ 'true', 'false' ],\n        unsupported: false\n      },\n      'aria-checked': {\n        type: 'nmtoken',\n        values: [ 'true', 'false', 'mixed', 'undefined' ],\n        unsupported: false\n      },\n      'aria-colcount': {\n        type: 'int',\n        unsupported: false\n      },\n      'aria-colindex': {\n        type: 'int',\n        unsupported: false\n      },\n      'aria-colspan': {\n        type: 'int',\n        unsupported: false\n      },\n      'aria-controls': {\n        type: 'idrefs',\n        allowEmpty: true,\n        unsupported: false\n      },\n      'aria-current': {\n        type: 'nmtoken',\n        allowEmpty: true,\n        values: [ 'page', 'step', 'location', 'date', 'time', 'true', 'false' ],\n        unsupported: false\n      },\n      'aria-describedby': {\n        type: 'idrefs',\n        allowEmpty: true,\n        unsupported: false\n      },\n      'aria-describedat': {\n        unsupported: true,\n        unstandardized: true\n      },\n      'aria-details': {\n        type: 'idref',\n        allowEmpty: true,\n        unsupported: false\n      },\n      'aria-disabled': {\n        type: 'boolean',\n        values: [ 'true', 'false' ],\n        unsupported: false\n      },\n      'aria-dropeffect': {\n        type: 'nmtokens',\n        values: [ 'copy', 'move', 'reference', 'execute', 'popup', 'none' ],\n        unsupported: false\n      },\n      'aria-errormessage': {\n        type: 'idref',\n        allowEmpty: true,\n        unsupported: false\n      },\n      'aria-expanded': {\n        type: 'nmtoken',\n        values: [ 'true', 'false', 'undefined' ],\n        unsupported: false\n      },\n      'aria-flowto': {\n        type: 'idrefs',\n        allowEmpty: true,\n        unsupported: false\n      },\n      'aria-grabbed': {\n        type: 'nmtoken',\n        values: [ 'true', 'false', 'undefined' ],\n        unsupported: false\n      },\n      'aria-haspopup': {\n        type: 'nmtoken',\n        allowEmpty: true,\n        values: [ 'true', 'false', 'menu', 'listbox', 'tree', 'grid', 'dialog' ],\n        unsupported: false\n      },\n      'aria-hidden': {\n        type: 'boolean',\n        values: [ 'true', 'false' ],\n        unsupported: false\n      },\n      'aria-invalid': {\n        type: 'nmtoken',\n        allowEmpty: true,\n        values: [ 'true', 'false', 'spelling', 'grammar' ],\n        unsupported: false\n      },\n      'aria-keyshortcuts': {\n        type: 'string',\n        allowEmpty: true,\n        unsupported: false\n      },\n      'aria-label': {\n        type: 'string',\n        allowEmpty: true,\n        unsupported: false\n      },\n      'aria-labelledby': {\n        type: 'idrefs',\n        allowEmpty: true,\n        unsupported: false\n      },\n      'aria-level': {\n        type: 'int',\n        unsupported: false\n      },\n      'aria-live': {\n        type: 'nmtoken',\n        values: [ 'off', 'polite', 'assertive' ],\n        unsupported: false\n      },\n      'aria-modal': {\n        type: 'boolean',\n        values: [ 'true', 'false' ],\n        unsupported: false\n      },\n      'aria-multiline': {\n        type: 'boolean',\n        values: [ 'true', 'false' ],\n        unsupported: false\n      },\n      'aria-multiselectable': {\n        type: 'boolean',\n        values: [ 'true', 'false' ],\n        unsupported: false\n      },\n      'aria-orientation': {\n        type: 'nmtoken',\n        values: [ 'horizontal', 'vertical' ],\n        unsupported: false\n      },\n      'aria-owns': {\n        type: 'idrefs',\n        allowEmpty: true,\n        unsupported: false\n      },\n      'aria-placeholder': {\n        type: 'string',\n        allowEmpty: true,\n        unsupported: false\n      },\n      'aria-posinset': {\n        type: 'int',\n        unsupported: false\n      },\n      'aria-pressed': {\n        type: 'nmtoken',\n        values: [ 'true', 'false', 'mixed', 'undefined' ],\n        unsupported: false\n      },\n      'aria-readonly': {\n        type: 'boolean',\n        values: [ 'true', 'false' ],\n        unsupported: false\n      },\n      'aria-relevant': {\n        type: 'nmtokens',\n        values: [ 'additions', 'removals', 'text', 'all' ],\n        unsupported: false\n      },\n      'aria-required': {\n        type: 'boolean',\n        values: [ 'true', 'false' ],\n        unsupported: false\n      },\n      'aria-roledescription': {\n        type: 'string',\n        allowEmpty: true,\n        unsupported: false\n      },\n      'aria-rowcount': {\n        type: 'int',\n        unsupported: false\n      },\n      'aria-rowindex': {\n        type: 'int',\n        unsupported: false\n      },\n      'aria-rowspan': {\n        type: 'int',\n        unsupported: false\n      },\n      'aria-selected': {\n        type: 'nmtoken',\n        values: [ 'true', 'false', 'undefined' ],\n        unsupported: false\n      },\n      'aria-setsize': {\n        type: 'int',\n        unsupported: false\n      },\n      'aria-sort': {\n        type: 'nmtoken',\n        values: [ 'ascending', 'descending', 'other', 'none' ],\n        unsupported: false\n      },\n      'aria-valuemax': {\n        type: 'decimal',\n        unsupported: false\n      },\n      'aria-valuemin': {\n        type: 'decimal',\n        unsupported: false\n      },\n      'aria-valuenow': {\n        type: 'decimal',\n        unsupported: false\n      },\n      'aria-valuetext': {\n        type: 'string',\n        unsupported: false\n      }\n    };\n    lookupTable.globalAttributes = [ 'aria-atomic', 'aria-busy', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-dropeffect', 'aria-flowto', 'aria-grabbed', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-live', 'aria-owns', 'aria-relevant', 'aria-roledescription' ];\n    lookupTable.role = {\n      alert: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      alertdialog: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-modal', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'dialog', 'section' ]\n      },\n      application: {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage', 'aria-activedescendant' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'article', 'audio', 'embed', 'iframe', 'object', 'section', 'svg', 'video' ]\n      },\n      article: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-posinset', 'aria-setsize', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'article' ],\n        unsupported: false\n      },\n      banner: {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'header' ],\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      button: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-pressed', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: null,\n        implicit: [ 'button', 'input[type=\"button\"]', 'input[type=\"image\"]', 'input[type=\"reset\"]', 'input[type=\"submit\"]', 'summary' ],\n        unsupported: false,\n        allowedElements: [ {\n          nodeName: 'a',\n          attributes: {\n            href: isNotNull\n          }\n        } ]\n      },\n      cell: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-colindex', 'aria-colspan', 'aria-rowindex', 'aria-rowspan', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: [ 'row' ],\n        implicit: [ 'td', 'th' ],\n        unsupported: false\n      },\n      checkbox: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-checked', 'aria-required', 'aria-readonly', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: null,\n        implicit: [ 'input[type=\"checkbox\"]' ],\n        unsupported: false,\n        allowedElements: [ 'button' ]\n      },\n      columnheader: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-colindex', 'aria-colspan', 'aria-expanded', 'aria-rowindex', 'aria-rowspan', 'aria-required', 'aria-readonly', 'aria-selected', 'aria-sort', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: [ 'row' ],\n        implicit: [ 'th' ],\n        unsupported: false\n      },\n      combobox: {\n        type: 'composite',\n        attributes: {\n          allowed: [ 'aria-autocomplete', 'aria-required', 'aria-activedescendant', 'aria-orientation', 'aria-errormessage' ],\n          required: [ 'aria-expanded' ]\n        },\n        owned: {\n          all: [ 'listbox', 'tree', 'grid', 'dialog', 'textbox' ]\n        },\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ {\n          nodeName: 'input',\n          properties: {\n            type: [ 'text', 'search', 'tel', 'url', 'email' ]\n          }\n        } ]\n      },\n      command: {\n        nameFrom: [ 'author' ],\n        type: 'abstract',\n        unsupported: false\n      },\n      complementary: {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'aside' ],\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      composite: {\n        nameFrom: [ 'author' ],\n        type: 'abstract',\n        unsupported: false\n      },\n      contentinfo: {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'footer' ],\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      definition: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'dd', 'dfn' ],\n        unsupported: false\n      },\n      dialog: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-modal', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'dialog' ],\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      directory: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'ol', 'ul' ]\n      },\n      document: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'body' ],\n        unsupported: false,\n        allowedElements: [ 'article', 'embed', 'iframe', 'object', 'section', 'svg' ]\n      },\n      'doc-abstract': {\n        type: 'section',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-acknowledgments': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-afterword': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-appendix': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-backlink': {\n        type: 'link',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ {\n          nodeName: 'a',\n          attributes: {\n            href: isNotNull\n          }\n        } ]\n      },\n      'doc-biblioentry': {\n        type: 'listitem',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-level', 'aria-posinset', 'aria-setsize', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: [ 'doc-bibliography' ],\n        unsupported: false,\n        allowedElements: [ 'li' ]\n      },\n      'doc-bibliography': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: {\n          one: [ 'doc-biblioentry' ]\n        },\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-biblioref': {\n        type: 'link',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ {\n          nodeName: 'a',\n          attributes: {\n            href: isNotNull\n          }\n        } ]\n      },\n      'doc-chapter': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-colophon': {\n        type: 'section',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-conclusion': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-cover': {\n        type: 'img',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false\n      },\n      'doc-credit': {\n        type: 'section',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-credits': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-dedication': {\n        type: 'section',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-endnote': {\n        type: 'listitem',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-level', 'aria-posinset', 'aria-setsize', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: [ 'doc-endnotes' ],\n        unsupported: false,\n        allowedElements: [ 'li' ]\n      },\n      'doc-endnotes': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: {\n          one: [ 'doc-endnote' ]\n        },\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-epigraph': {\n        type: 'section',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false\n      },\n      'doc-epilogue': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-errata': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-example': {\n        type: 'section',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'aside', 'section' ]\n      },\n      'doc-footnote': {\n        type: 'section',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'aside', 'footer', 'header' ]\n      },\n      'doc-foreword': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-glossary': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: [ 'term', 'definition' ],\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'dl' ]\n      },\n      'doc-glossref': {\n        type: 'link',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author', 'contents' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ {\n          nodeName: 'a',\n          attributes: {\n            href: isNotNull\n          }\n        } ]\n      },\n      'doc-index': {\n        type: 'navigation',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'nav', 'section' ]\n      },\n      'doc-introduction': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-noteref': {\n        type: 'link',\n        attributes: {\n          allowed: [ 'aria-expanded' ]\n        },\n        owned: null,\n        namefrom: [ 'author', 'contents' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ {\n          nodeName: 'a',\n          attributes: {\n            href: isNotNull\n          }\n        } ]\n      },\n      'doc-notice': {\n        type: 'note',\n        attributes: {\n          allowed: [ 'aria-expanded' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-pagebreak': {\n        type: 'separator',\n        attributes: {\n          allowed: [ 'aria-expanded' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'hr' ]\n      },\n      'doc-pagelist': {\n        type: 'navigation',\n        attributes: {\n          allowed: [ 'aria-expanded' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'nav', 'section' ]\n      },\n      'doc-part': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-preface': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-prologue': {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-pullquote': {\n        type: 'none',\n        attributes: {\n          allowed: [ 'aria-expanded' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'aside', 'section' ]\n      },\n      'doc-qna': {\n        type: 'section',\n        attributes: {\n          allowed: [ 'aria-expanded' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      'doc-subtitle': {\n        type: 'sectionhead',\n        attributes: {\n          allowed: [ 'aria-expanded' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: {\n          nodeName: [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ]\n        }\n      },\n      'doc-tip': {\n        type: 'note',\n        attributes: {\n          allowed: [ 'aria-expanded' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'aside' ]\n      },\n      'doc-toc': {\n        type: 'navigation',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        namefrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'nav', 'section' ]\n      },\n      feed: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: {\n          one: [ 'article' ]\n        },\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'article', 'aside', 'section' ]\n      },\n      figure: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: null,\n        implicit: [ 'figure' ],\n        unsupported: false\n      },\n      form: {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'form' ],\n        unsupported: false\n      },\n      grid: {\n        type: 'composite',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-expanded', 'aria-colcount', 'aria-level', 'aria-multiselectable', 'aria-readonly', 'aria-rowcount', 'aria-errormessage' ]\n        },\n        owned: {\n          one: [ 'rowgroup', 'row' ]\n        },\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'table' ],\n        unsupported: false\n      },\n      gridcell: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-colindex', 'aria-colspan', 'aria-expanded', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-readonly', 'aria-required', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: [ 'row' ],\n        implicit: [ 'td', 'th' ],\n        unsupported: false\n      },\n      group: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'details', 'optgroup' ],\n        unsupported: false,\n        allowedElements: [ 'dl', 'figcaption', 'fieldset', 'figure', 'footer', 'header', 'ol', 'ul' ]\n      },\n      heading: {\n        type: 'structure',\n        attributes: {\n          required: [ 'aria-level' ],\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: null,\n        implicit: [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ],\n        unsupported: false\n      },\n      img: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'img' ],\n        unsupported: false,\n        allowedElements: [ 'embed', 'iframe', 'object', 'svg' ]\n      },\n      input: {\n        nameFrom: [ 'author' ],\n        type: 'abstract',\n        unsupported: false\n      },\n      landmark: {\n        nameFrom: [ 'author' ],\n        type: 'abstract',\n        unsupported: false\n      },\n      link: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: null,\n        implicit: [ 'a[href]', 'area[href]' ],\n        unsupported: false,\n        allowedElements: [ 'button', {\n          nodeName: 'input',\n          properties: {\n            type: [ 'image', 'button' ]\n          }\n        } ]\n      },\n      list: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: {\n          all: [ 'listitem' ]\n        },\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'ol', 'ul', 'dl' ],\n        unsupported: false\n      },\n      listbox: {\n        type: 'composite',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-multiselectable', 'aria-readonly', 'aria-required', 'aria-expanded', 'aria-orientation', 'aria-errormessage' ]\n        },\n        owned: {\n          all: [ 'option' ]\n        },\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'select' ],\n        unsupported: false,\n        allowedElements: [ 'ol', 'ul' ]\n      },\n      listitem: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-level', 'aria-posinset', 'aria-setsize', 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: [ 'list' ],\n        implicit: [ 'li', 'dt' ],\n        unsupported: false\n      },\n      log: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      main: {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'main' ],\n        unsupported: false,\n        allowedElements: [ 'article', 'section' ]\n      },\n      marquee: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      math: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'math' ],\n        unsupported: false\n      },\n      menu: {\n        type: 'composite',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-expanded', 'aria-orientation', 'aria-errormessage' ]\n        },\n        owned: {\n          one: [ 'menuitem', 'menuitemradio', 'menuitemcheckbox' ]\n        },\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'menu[type=\"context\"]' ],\n        unsupported: false,\n        allowedElements: [ 'ol', 'ul' ]\n      },\n      menubar: {\n        type: 'composite',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-expanded', 'aria-orientation', 'aria-errormessage' ]\n        },\n        owned: {\n          one: [ 'menuitem', 'menuitemradio', 'menuitemcheckbox' ]\n        },\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'ol', 'ul' ]\n      },\n      menuitem: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-posinset', 'aria-setsize', 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: [ 'menu', 'menubar' ],\n        implicit: [ 'menuitem[type=\"command\"]' ],\n        unsupported: false,\n        allowedElements: [ 'button', 'li', {\n          nodeName: 'iput',\n          properties: {\n            type: [ 'image', 'button' ]\n          }\n        }, {\n          nodeName: 'a',\n          attributes: {\n            href: isNotNull\n          }\n        } ]\n      },\n      menuitemcheckbox: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-checked', 'aria-posinset', 'aria-setsize', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: [ 'menu', 'menubar' ],\n        implicit: [ 'menuitem[type=\"checkbox\"]' ],\n        unsupported: false,\n        allowedElements: [ {\n          nodeName: [ 'button', 'li' ]\n        }, {\n          nodeName: 'input',\n          properties: {\n            type: [ 'checkbox', 'image', 'button' ]\n          }\n        }, {\n          nodeName: 'a',\n          attributes: {\n            href: isNotNull\n          }\n        } ]\n      },\n      menuitemradio: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-checked', 'aria-selected', 'aria-posinset', 'aria-setsize', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: [ 'menu', 'menubar' ],\n        implicit: [ 'menuitem[type=\"radio\"]' ],\n        unsupported: false,\n        allowedElements: [ {\n          nodeName: [ 'button', 'li' ]\n        }, {\n          nodeName: 'input',\n          properties: {\n            type: [ 'image', 'button', 'radio' ]\n          }\n        }, {\n          nodeName: 'a',\n          attributes: {\n            href: isNotNull\n          }\n        } ]\n      },\n      navigation: {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'nav' ],\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      none: {\n        type: 'structure',\n        attributes: null,\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ {\n          nodeName: [ 'article', 'aside', 'dl', 'embed', 'figcaption', 'fieldset', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hr', 'iframe', 'li', 'ol', 'section', 'ul' ]\n        }, {\n          nodeName: 'img',\n          attributes: {\n            alt: isNotNull\n          }\n        } ]\n      },\n      note: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'aside' ]\n      },\n      option: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-selected', 'aria-posinset', 'aria-setsize', 'aria-checked', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: [ 'listbox' ],\n        implicit: [ 'option' ],\n        unsupported: false,\n        allowedElements: [ {\n          nodeName: [ 'button', 'li' ]\n        }, {\n          nodeName: 'input',\n          properties: {\n            type: [ 'checkbox', 'button' ]\n          }\n        }, {\n          nodeName: 'a',\n          attributes: {\n            href: isNotNull\n          }\n        } ]\n      },\n      presentation: {\n        type: 'structure',\n        attributes: null,\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ {\n          nodeName: [ 'article', 'aside', 'dl', 'embed', 'figcaption', 'fieldset', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hr', 'iframe', 'li', 'ol', 'section', 'ul' ]\n        }, {\n          nodeName: 'img',\n          attributes: {\n            alt: isNotNull\n          }\n        } ]\n      },\n      progressbar: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-valuetext', 'aria-valuenow', 'aria-valuemax', 'aria-valuemin', 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'progress' ],\n        unsupported: false\n      },\n      radio: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-selected', 'aria-posinset', 'aria-setsize', 'aria-required', 'aria-errormessage', 'aria-checked' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: null,\n        implicit: [ 'input[type=\"radio\"]' ],\n        unsupported: false,\n        allowedElements: [ {\n          nodeName: [ 'button', 'li' ]\n        }, {\n          nodeName: 'input',\n          properties: {\n            type: [ 'image', 'button' ]\n          }\n        } ]\n      },\n      radiogroup: {\n        type: 'composite',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-required', 'aria-expanded', 'aria-readonly', 'aria-errormessage', 'aria-orientation' ]\n        },\n        owned: {\n          all: [ 'radio' ]\n        },\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: {\n          nodeName: [ 'ol', 'ul', 'fieldset' ]\n        }\n      },\n      range: {\n        nameFrom: [ 'author' ],\n        type: 'abstract',\n        unsupported: false\n      },\n      region: {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'section[aria-label]', 'section[aria-labelledby]', 'section[title]' ],\n        unsupported: false,\n        allowedElements: {\n          nodeName: [ 'article', 'aside' ]\n        }\n      },\n      roletype: {\n        type: 'abstract',\n        unsupported: false\n      },\n      row: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-colindex', 'aria-expanded', 'aria-level', 'aria-selected', 'aria-rowindex', 'aria-errormessage' ]\n        },\n        owned: {\n          one: [ 'cell', 'columnheader', 'rowheader', 'gridcell' ]\n        },\n        nameFrom: [ 'author', 'contents' ],\n        context: [ 'rowgroup', 'grid', 'treegrid', 'table' ],\n        implicit: [ 'tr' ],\n        unsupported: false\n      },\n      rowgroup: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: {\n          all: [ 'row' ]\n        },\n        nameFrom: [ 'author', 'contents' ],\n        context: [ 'grid', 'table', 'treegrid' ],\n        implicit: [ 'tbody', 'thead', 'tfoot' ],\n        unsupported: false\n      },\n      rowheader: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-colindex', 'aria-colspan', 'aria-expanded', 'aria-rowindex', 'aria-rowspan', 'aria-required', 'aria-readonly', 'aria-selected', 'aria-sort', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: [ 'row' ],\n        implicit: [ 'th' ],\n        unsupported: false\n      },\n      scrollbar: {\n        type: 'widget',\n        attributes: {\n          required: [ 'aria-controls', 'aria-valuenow' ],\n          allowed: [ 'aria-valuetext', 'aria-orientation', 'aria-errormessage', 'aria-valuemax', 'aria-valuemin' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false\n      },\n      search: {\n        type: 'landmark',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: {\n          nodeName: [ 'aside', 'form', 'section' ]\n        }\n      },\n      searchbox: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-autocomplete', 'aria-multiline', 'aria-readonly', 'aria-required', 'aria-placeholder', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'input[type=\"search\"]' ],\n        unsupported: false,\n        allowedElements: {\n          nodeName: 'input',\n          properties: {\n            type: 'text'\n          }\n        }\n      },\n      section: {\n        nameFrom: [ 'author', 'contents' ],\n        type: 'abstract',\n        unsupported: false\n      },\n      sectionhead: {\n        nameFrom: [ 'author', 'contents' ],\n        type: 'abstract',\n        unsupported: false\n      },\n      select: {\n        nameFrom: [ 'author' ],\n        type: 'abstract',\n        unsupported: false\n      },\n      separator: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-orientation', 'aria-valuenow', 'aria-valuemax', 'aria-valuemin', 'aria-valuetext', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'hr' ],\n        unsupported: false,\n        allowedElements: [ 'li' ]\n      },\n      slider: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-valuetext', 'aria-orientation', 'aria-readonly', 'aria-errormessage', 'aria-valuemax', 'aria-valuemin' ],\n          required: [ 'aria-valuenow' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'input[type=\"range\"]' ],\n        unsupported: false\n      },\n      spinbutton: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-valuetext', 'aria-required', 'aria-readonly', 'aria-errormessage', 'aria-valuemax', 'aria-valuemin' ],\n          required: [ 'aria-valuenow' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'input[type=\"number\"]' ],\n        unsupported: false,\n        allowedElements: {\n          nodeName: 'input',\n          properties: {\n            type: [ 'text', 'tel' ]\n          }\n        }\n      },\n      status: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'output' ],\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      structure: {\n        type: 'abstract',\n        unsupported: false\n      },\n      switch: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-errormessage' ],\n          required: [ 'aria-checked' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'button', {\n          nodeName: 'input',\n          properties: {\n            type: [ 'checkbox', 'image', 'button' ]\n          }\n        }, {\n          nodeName: 'a',\n          attributes: {\n            href: isNotNull\n          }\n        } ]\n      },\n      tab: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-selected', 'aria-expanded', 'aria-setsize', 'aria-posinset', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: [ 'tablist' ],\n        unsupported: false,\n        allowedElements: [ {\n          nodeName: [ 'button', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'li' ]\n        }, {\n          nodeName: 'input',\n          properties: {\n            type: 'button'\n          }\n        }, {\n          nodeName: 'a',\n          attributes: {\n            href: isNotNull\n          }\n        } ]\n      },\n      table: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-colcount', 'aria-rowcount', 'aria-errormessage' ]\n        },\n        owned: {\n          one: [ 'rowgroup', 'row' ]\n        },\n        nameFrom: [ 'author', 'contents' ],\n        context: null,\n        implicit: [ 'table' ],\n        unsupported: false\n      },\n      tablist: {\n        type: 'composite',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-expanded', 'aria-level', 'aria-multiselectable', 'aria-orientation', 'aria-errormessage' ]\n        },\n        owned: {\n          all: [ 'tab' ]\n        },\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'ol', 'ul' ]\n      },\n      tabpanel: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'section' ]\n      },\n      term: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: null,\n        implicit: [ 'dt' ],\n        unsupported: false\n      },\n      textbox: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-autocomplete', 'aria-multiline', 'aria-readonly', 'aria-required', 'aria-placeholder', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'input[type=\"text\"]', 'input[type=\"email\"]', 'input[type=\"password\"]', 'input[type=\"tel\"]', 'input[type=\"url\"]', 'input:not([type])', 'textarea' ],\n        unsupported: false\n      },\n      timer: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false\n      },\n      toolbar: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-expanded', 'aria-orientation', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author' ],\n        context: null,\n        implicit: [ 'menu[type=\"toolbar\"]' ],\n        unsupported: false,\n        allowedElements: [ 'ol', 'ul' ]\n      },\n      tooltip: {\n        type: 'structure',\n        attributes: {\n          allowed: [ 'aria-expanded', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: null,\n        unsupported: false\n      },\n      tree: {\n        type: 'composite',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-multiselectable', 'aria-required', 'aria-expanded', 'aria-orientation', 'aria-errormessage' ]\n        },\n        owned: {\n          all: [ 'treeitem' ]\n        },\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false,\n        allowedElements: [ 'ol', 'ul' ]\n      },\n      treegrid: {\n        type: 'composite',\n        attributes: {\n          allowed: [ 'aria-activedescendant', 'aria-colcount', 'aria-expanded', 'aria-level', 'aria-multiselectable', 'aria-readonly', 'aria-required', 'aria-rowcount', 'aria-orientation', 'aria-errormessage' ]\n        },\n        owned: {\n          one: [ 'rowgroup', 'row' ]\n        },\n        nameFrom: [ 'author' ],\n        context: null,\n        unsupported: false\n      },\n      treeitem: {\n        type: 'widget',\n        attributes: {\n          allowed: [ 'aria-checked', 'aria-selected', 'aria-expanded', 'aria-level', 'aria-posinset', 'aria-setsize', 'aria-errormessage' ]\n        },\n        owned: null,\n        nameFrom: [ 'author', 'contents' ],\n        context: [ 'group', 'tree' ],\n        unsupported: false,\n        allowedElements: [ 'li', {\n          nodeName: 'a',\n          attributes: {\n            href: isNotNull\n          }\n        } ]\n      },\n      widget: {\n        type: 'abstract',\n        unsupported: false\n      },\n      window: {\n        nameFrom: [ 'author' ],\n        type: 'abstract',\n        unsupported: false\n      }\n    };\n    lookupTable.implicitHtmlRole = implicit_html_roles_default;\n    lookupTable.elementsAllowedNoRole = [ {\n      nodeName: [ 'base', 'body', 'caption', 'col', 'colgroup', 'datalist', 'dd', 'details', 'dt', 'head', 'html', 'keygen', 'label', 'legend', 'main', 'map', 'math', 'meta', 'meter', 'noscript', 'optgroup', 'param', 'picture', 'progress', 'script', 'source', 'style', 'template', 'textarea', 'title', 'track' ]\n    }, {\n      nodeName: 'area',\n      attributes: {\n        href: isNotNull\n      }\n    }, {\n      nodeName: 'input',\n      properties: {\n        type: [ 'color', 'data', 'datatime', 'file', 'hidden', 'month', 'number', 'password', 'range', 'reset', 'submit', 'time', 'week' ]\n      }\n    }, {\n      nodeName: 'link',\n      attributes: {\n        href: isNotNull\n      }\n    }, {\n      nodeName: 'menu',\n      attributes: {\n        type: 'context'\n      }\n    }, {\n      nodeName: 'menuitem',\n      attributes: {\n        type: [ 'command', 'checkbox', 'radio' ]\n      }\n    }, {\n      nodeName: 'select',\n      condition: function condition(vNode) {\n        if (!(vNode instanceof axe.AbstractVirtualNode)) {\n          vNode = axe.utils.getNodeFromTree(vNode);\n        }\n        return Number(vNode.attr('size')) > 1;\n      },\n      properties: {\n        multiple: true\n      }\n    }, {\n      nodeName: [ 'clippath', 'cursor', 'defs', 'desc', 'feblend', 'fecolormatrix', 'fecomponenttransfer', 'fecomposite', 'feconvolvematrix', 'fediffuselighting', 'fedisplacementmap', 'fedistantlight', 'fedropshadow', 'feflood', 'fefunca', 'fefuncb', 'fefuncg', 'fefuncr', 'fegaussianblur', 'feimage', 'femerge', 'femergenode', 'femorphology', 'feoffset', 'fepointlight', 'fespecularlighting', 'fespotlight', 'fetile', 'feturbulence', 'filter', 'hatch', 'hatchpath', 'lineargradient', 'marker', 'mask', 'meshgradient', 'meshpatch', 'meshrow', 'metadata', 'mpath', 'pattern', 'radialgradient', 'solidcolor', 'stop', 'switch', 'view' ]\n    } ];\n    lookupTable.elementsAllowedAnyRole = [ {\n      nodeName: 'a',\n      attributes: {\n        href: isNull\n      }\n    }, {\n      nodeName: 'img',\n      attributes: {\n        alt: isNull\n      }\n    }, {\n      nodeName: [ 'abbr', 'address', 'canvas', 'div', 'p', 'pre', 'blockquote', 'ins', 'del', 'output', 'span', 'table', 'tbody', 'thead', 'tfoot', 'td', 'em', 'strong', 'small', 's', 'cite', 'q', 'dfn', 'abbr', 'time', 'code', 'var', 'samp', 'kbd', 'sub', 'sup', 'i', 'b', 'u', 'mark', 'ruby', 'rt', 'rp', 'bdi', 'bdo', 'br', 'wbr', 'th', 'tr' ]\n    } ];\n    lookupTable.evaluateRoleForElement = {\n      A: function A(_ref33) {\n        var node = _ref33.node, out = _ref33.out;\n        if (node.namespaceURI === 'http://www.w3.org/2000/svg') {\n          return true;\n        }\n        if (node.href.length) {\n          return out;\n        }\n        return true;\n      },\n      AREA: function AREA(_ref34) {\n        var node = _ref34.node;\n        return !node.href;\n      },\n      BUTTON: function BUTTON(_ref35) {\n        var node = _ref35.node, role = _ref35.role, out = _ref35.out;\n        if (node.getAttribute('type') === 'menu') {\n          return role === 'menuitem';\n        }\n        return out;\n      },\n      IMG: function IMG(_ref36) {\n        var node = _ref36.node, role = _ref36.role, out = _ref36.out;\n        switch (node.alt) {\n         case null:\n          return out;\n\n         case '':\n          return role === 'presentation' || role === 'none';\n\n         default:\n          return role !== 'presentation' && role !== 'none';\n        }\n      },\n      INPUT: function INPUT(_ref37) {\n        var node = _ref37.node, role = _ref37.role, out = _ref37.out;\n        switch (node.type) {\n         case 'button':\n         case 'image':\n          return out;\n\n         case 'checkbox':\n          if (role === 'button' && node.hasAttribute('aria-pressed')) {\n            return true;\n          }\n          return out;\n\n         case 'radio':\n          return role === 'menuitemradio';\n\n         case 'text':\n          return role === 'combobox' || role === 'searchbox' || role === 'spinbutton';\n\n         case 'tel':\n          return role === 'combobox' || role === 'spinbutton';\n\n         case 'url':\n         case 'search':\n         case 'email':\n          return role === 'combobox';\n\n         default:\n          return false;\n        }\n      },\n      LI: function LI(_ref38) {\n        var node = _ref38.node, out = _ref38.out;\n        var hasImplicitListitemRole = axe.utils.matchesSelector(node, 'ol li, ul li');\n        if (hasImplicitListitemRole) {\n          return out;\n        }\n        return true;\n      },\n      MENU: function MENU(_ref39) {\n        var node = _ref39.node;\n        if (node.getAttribute('type') === 'context') {\n          return false;\n        }\n        return true;\n      },\n      OPTION: function OPTION(_ref40) {\n        var node = _ref40.node;\n        var withinOptionList = axe.utils.matchesSelector(node, 'select > option, datalist > option, optgroup > option');\n        return !withinOptionList;\n      },\n      SELECT: function SELECT(_ref41) {\n        var node = _ref41.node, role = _ref41.role;\n        return !node.multiple && node.size <= 1 && role === 'menu';\n      },\n      SVG: function SVG(_ref42) {\n        var node = _ref42.node, out = _ref42.out;\n        if (node.parentNode && node.parentNode.namespaceURI === 'http://www.w3.org/2000/svg') {\n          return true;\n        }\n        return out;\n      }\n    };\n    lookupTable.rolesOfType = {\n      widget: [ 'button', 'checkbox', 'dialog', 'gridcell', 'link', 'log', 'marquee', 'menuitem', 'menuitemcheckbox', 'menuitemradio', 'option', 'progressbar', 'radio', 'scrollbar', 'searchbox', 'slider', 'spinbutton', 'status', 'switch', 'tab', 'tabpanel', 'textbox', 'timer', 'tooltip', 'tree', 'treeitem' ]\n    };\n    var lookup_table_default = lookupTable;\n    function implicitNodes(role) {\n      var implicit = null;\n      var roles = lookup_table_default.role[role];\n      if (roles && roles.implicit) {\n        implicit = clone_default(roles.implicit);\n      }\n      return implicit;\n    }\n    var implicit_nodes_default = implicitNodes;\n    function isAccessibleRef(node) {\n      return !!get_accessible_refs_default(node).length;\n    }\n    var is_accessible_ref_default = isAccessibleRef;\n    function label3(node) {\n      node = get_node_from_tree_default(node);\n      return label_virtual_default(node);\n    }\n    var label_default2 = label3;\n    function requiredAttr(role) {\n      var roleDef = standards_default.ariaRoles[role];\n      if (!roleDef || !Array.isArray(roleDef.requiredAttrs)) {\n        return [];\n      }\n      return _toConsumableArray(roleDef.requiredAttrs);\n    }\n    var required_attr_default = requiredAttr;\n    function requiredContext(role) {\n      var roleDef = standards_default.ariaRoles[role];\n      if (!roleDef || !Array.isArray(roleDef.requiredContext)) {\n        return null;\n      }\n      return _toConsumableArray(roleDef.requiredContext);\n    }\n    var required_context_default = requiredContext;\n    function requiredOwned(role) {\n      var roleDef = standards_default.ariaRoles[role];\n      if (!roleDef || !Array.isArray(roleDef.requiredOwned)) {\n        return null;\n      }\n      return _toConsumableArray(roleDef.requiredOwned);\n    }\n    var required_owned_default = requiredOwned;\n    function validateAttrValue(node, attr) {\n      var matches14;\n      var list;\n      var value = node.getAttribute(attr);\n      var attrInfo = standards_default.ariaAttrs[attr];\n      var doc = get_root_node_default2(node);\n      if (!attrInfo) {\n        return true;\n      }\n      if (attrInfo.allowEmpty && (!value || value.trim() === '')) {\n        return true;\n      }\n      switch (attrInfo.type) {\n       case 'boolean':\n        return [ 'true', 'false' ].includes(value.toLowerCase());\n\n       case 'nmtoken':\n        return typeof value === 'string' && attrInfo.values.includes(value.toLowerCase());\n\n       case 'nmtokens':\n        list = token_list_default(value);\n        return list.reduce(function(result, token) {\n          return result && attrInfo.values.includes(token);\n        }, list.length !== 0);\n\n       case 'idref':\n        return !!(value && doc.getElementById(value));\n\n       case 'idrefs':\n        list = token_list_default(value);\n        return list.some(function(token) {\n          return doc.getElementById(token);\n        });\n\n       case 'string':\n        return value.trim() !== '';\n\n       case 'decimal':\n        matches14 = value.match(/^[-+]?([0-9]*)\\.?([0-9]*)$/);\n        return !!(matches14 && (matches14[1] || matches14[2]));\n\n       case 'int':\n        var minValue = typeof attrInfo.minValue !== 'undefined' ? attrInfo.minValue : -Infinity;\n        return /^[-+]?[0-9]+$/.test(value) && parseInt(value) >= minValue;\n      }\n    }\n    var validate_attr_value_default = validateAttrValue;\n    function validateAttr(att) {\n      var attrDefinition = standards_default.ariaAttrs[att];\n      return !!attrDefinition;\n    }\n    var validate_attr_default = validateAttr;\n    function abstractroleEvaluate(node, options, virtualNode) {\n      var abstractRoles = token_list_default(virtualNode.attr('role')).filter(function(role) {\n        return get_role_type_default(role) === 'abstract';\n      });\n      if (abstractRoles.length > 0) {\n        this.data(abstractRoles);\n        return true;\n      }\n      return false;\n    }\n    var abstractrole_evaluate_default = abstractroleEvaluate;\n    function ariaAllowedAttrEvaluate(node, options, virtualNode) {\n      var invalid = [];\n      var role = get_role_default(virtualNode);\n      var attrs = virtualNode.attrNames;\n      var allowed = allowed_attr_default(role);\n      if (Array.isArray(options[role])) {\n        allowed = unique_array_default(options[role].concat(allowed));\n      }\n      if (role && allowed) {\n        for (var _i13 = 0; _i13 < attrs.length; _i13++) {\n          var attrName = attrs[_i13];\n          if (validate_attr_default(attrName) && !allowed.includes(attrName)) {\n            invalid.push(attrName + '=\"' + virtualNode.attr(attrName) + '\"');\n          }\n        }\n      }\n      if (invalid.length) {\n        this.data(invalid);\n        return false;\n      }\n      return true;\n    }\n    var aria_allowed_attr_evaluate_default = ariaAllowedAttrEvaluate;\n    function ariaAllowedRoledEvaluate(node) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var _options$allowImplici = options.allowImplicit, allowImplicit = _options$allowImplici === void 0 ? true : _options$allowImplici, _options$ignoredTags = options.ignoredTags, ignoredTags = _options$ignoredTags === void 0 ? [] : _options$ignoredTags;\n      var tagName = node.nodeName.toUpperCase();\n      if (ignoredTags.map(function(t) {\n        return t.toUpperCase();\n      }).includes(tagName)) {\n        return true;\n      }\n      var unallowedRoles = get_element_unallowed_roles_default(node, allowImplicit);\n      if (unallowedRoles.length) {\n        this.data(unallowedRoles);\n        if (!is_visible_default(node, true)) {\n          return void 0;\n        }\n        return false;\n      }\n      return true;\n    }\n    var aria_allowed_role_evaluate_default = ariaAllowedRoledEvaluate;\n    function ariaErrormessageEvaluate(node, options) {\n      options = Array.isArray(options) ? options : [];\n      var attr = node.getAttribute('aria-errormessage');\n      var hasAttr = node.hasAttribute('aria-errormessage');\n      var invaid = node.getAttribute('aria-invalid');\n      var hasInvallid = node.hasAttribute('aria-invalid');\n      if (!hasInvallid || invaid === 'false') {\n        return true;\n      }\n      var doc = get_root_node_default2(node);\n      function validateAttrValue2(attr2) {\n        if (attr2.trim() === '') {\n          return standards_default.ariaAttrs['aria-errormessage'].allowEmpty;\n        }\n        var idref = attr2 && doc.getElementById(attr2);\n        if (idref) {\n          return idref.getAttribute('role') === 'alert' || idref.getAttribute('aria-live') === 'assertive' || idref.getAttribute('aria-live') === 'polite' || token_list_default(node.getAttribute('aria-describedby')).indexOf(attr2) > -1;\n        }\n        return;\n      }\n      if (options.indexOf(attr) === -1 && hasAttr) {\n        this.data(token_list_default(attr));\n        return validateAttrValue2(attr);\n      }\n      return true;\n    }\n    var aria_errormessage_evaluate_default = ariaErrormessageEvaluate;\n    function ariaHiddenBodyEvaluate(node, options, virtualNode) {\n      return virtualNode.attr('aria-hidden') !== 'true';\n    }\n    var aria_hidden_body_evaluate_default = ariaHiddenBodyEvaluate;\n    function ariaProhibitedAttrEvaluate(node) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var virtualNode = arguments.length > 2 ? arguments[2] : undefined;\n      var _options$elementsAllo = options.elementsAllowedAriaLabel, elementsAllowedAriaLabel = _options$elementsAllo === void 0 ? [] : _options$elementsAllo;\n      var prohibitedList = listProhibitedAttrs(virtualNode, elementsAllowedAriaLabel);\n      var prohibited = prohibitedList.filter(function(attrName) {\n        if (!virtualNode.attrNames.includes(attrName)) {\n          return false;\n        }\n        return sanitize_default(virtualNode.attr(attrName)) !== '';\n      });\n      if (prohibited.length === 0) {\n        return false;\n      }\n      this.data(prohibited);\n      var hasTextContent = sanitize_default(subtree_text_default(virtualNode)) !== '';\n      return hasTextContent ? void 0 : true;\n    }\n    function listProhibitedAttrs(virtualNode, elementsAllowedAriaLabel) {\n      var role = get_role_default(virtualNode);\n      var roleSpec = standards_default.ariaRoles[role];\n      if (roleSpec) {\n        return roleSpec.prohibitedAttrs || [];\n      }\n      var nodeName2 = virtualNode.props.nodeName;\n      if (elementsAllowedAriaLabel.includes(nodeName2)) {\n        return [];\n      }\n      return [ 'aria-label', 'aria-labelledby' ];\n    }\n    var aria_prohibited_attr_evaluate_default = ariaProhibitedAttrEvaluate;\n    var standards_exports = {};\n    __export(standards_exports, {\n      getAriaRolesByType: function getAriaRolesByType() {\n        return get_aria_roles_by_type_default;\n      },\n      getAriaRolesSupportingNameFromContent: function getAriaRolesSupportingNameFromContent() {\n        return get_aria_roles_supporting_name_from_content_default;\n      },\n      getElementSpec: function getElementSpec() {\n        return get_element_spec_default;\n      },\n      getElementsByContentType: function getElementsByContentType() {\n        return get_elements_by_content_type_default;\n      },\n      getGlobalAriaAttrs: function getGlobalAriaAttrs() {\n        return get_global_aria_attrs_default;\n      },\n      implicitHtmlRoles: function implicitHtmlRoles() {\n        return implicit_html_roles_default;\n      }\n    });\n    function ariaRequiredAttrEvaluate(node) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var virtualNode = arguments.length > 2 ? arguments[2] : undefined;\n      var missing = [];\n      var attrs = virtualNode.attrNames;\n      if (attrs.length) {\n        var role = get_explicit_role_default(virtualNode);\n        var required = required_attr_default(role);\n        var elmSpec = get_element_spec_default(virtualNode);\n        if (Array.isArray(options[role])) {\n          required = unique_array_default(options[role], required);\n        }\n        if (role && required) {\n          for (var _i14 = 0, l = required.length; _i14 < l; _i14++) {\n            var attr = required[_i14];\n            if (!virtualNode.attr(attr) && !(elmSpec.implicitAttrs && typeof elmSpec.implicitAttrs[attr] !== 'undefined')) {\n              missing.push(attr);\n            }\n          }\n        }\n      }\n      if (missing.length) {\n        this.data(missing);\n        return false;\n      }\n      return true;\n    }\n    var aria_required_attr_evaluate_default = ariaRequiredAttrEvaluate;\n    function getOwnedRoles(virtualNode, required) {\n      var ownedRoles = [];\n      var ownedElements = get_owned_virtual_default(virtualNode);\n      var _loop4 = function _loop4(_i15) {\n        var ownedElement = ownedElements[_i15];\n        var role = get_role_default(ownedElement, {\n          noPresentational: true\n        });\n        if (!role || [ 'group', 'rowgroup' ].includes(role) && required.some(function(requiredRole) {\n          return requiredRole === role;\n        })) {\n          ownedElements.push.apply(ownedElements, _toConsumableArray(ownedElement.children));\n        } else if (role) {\n          ownedRoles.push(role);\n        }\n      };\n      for (var _i15 = 0; _i15 < ownedElements.length; _i15++) {\n        _loop4(_i15);\n      }\n      return ownedRoles;\n    }\n    function missingRequiredChildren(virtualNode, role, required, ownedRoles) {\n      var isCombobox = role === 'combobox';\n      if (isCombobox) {\n        var textTypeInputs = [ 'text', 'search', 'email', 'url', 'tel' ];\n        if (virtualNode.props.nodeName === 'input' && textTypeInputs.includes(virtualNode.props.type) || ownedRoles.includes('searchbox')) {\n          required = required.filter(function(requiredRole) {\n            return requiredRole !== 'textbox';\n          });\n        }\n        var expandedChildRoles = [ 'listbox', 'tree', 'grid', 'dialog' ];\n        var expandedValue = virtualNode.attr('aria-expanded');\n        var expanded = expandedValue && expandedValue.toLowerCase() !== 'false';\n        var popupRole = (virtualNode.attr('aria-haspopup') || 'listbox').toLowerCase();\n        required = required.filter(function(requiredRole) {\n          return !expandedChildRoles.includes(requiredRole) || expanded && requiredRole === popupRole;\n        });\n      }\n      for (var _i16 = 0; _i16 < ownedRoles.length; _i16++) {\n        var ownedRole = ownedRoles[_i16];\n        if (required.includes(ownedRole)) {\n          required = required.filter(function(requiredRole) {\n            return requiredRole !== ownedRole;\n          });\n          if (!isCombobox) {\n            return null;\n          }\n        }\n      }\n      if (required.length) {\n        return required;\n      }\n      return null;\n    }\n    function ariaRequiredChildrenEvaluate(node, options, virtualNode) {\n      var reviewEmpty = options && Array.isArray(options.reviewEmpty) ? options.reviewEmpty : [];\n      var role = get_explicit_role_default(virtualNode, {\n        dpub: true\n      });\n      var required = required_owned_default(role);\n      if (required === null) {\n        return true;\n      }\n      var ownedRoles = getOwnedRoles(virtualNode, required);\n      var missing = missingRequiredChildren(virtualNode, role, required, ownedRoles);\n      if (!missing) {\n        return true;\n      }\n      this.data(missing);\n      if (reviewEmpty.includes(role) && !has_content_virtual_default(virtualNode, false, true) && !ownedRoles.length && (!virtualNode.hasAttr('aria-owns') || !idrefs_default(node, 'aria-owns').length)) {\n        return void 0;\n      }\n      return false;\n    }\n    var aria_required_children_evaluate_default = ariaRequiredChildrenEvaluate;\n    function getMissingContext(virtualNode, ownGroupRoles, reqContext, includeElement) {\n      var explicitRole2 = get_explicit_role_default(virtualNode);\n      if (!reqContext) {\n        reqContext = required_context_default(explicitRole2);\n      }\n      if (!reqContext) {\n        return null;\n      }\n      var vNode = includeElement ? virtualNode : virtualNode.parent;\n      while (vNode) {\n        var parentRole = get_role_default(vNode);\n        if (reqContext.includes('group') && parentRole === 'group') {\n          if (ownGroupRoles.includes(explicitRole2)) {\n            reqContext.push(explicitRole2);\n          }\n          vNode = vNode.parent;\n          continue;\n        }\n        if (reqContext.includes(parentRole)) {\n          return null;\n        } else if (parentRole && ![ 'presentation', 'none' ].includes(parentRole)) {\n          return reqContext;\n        }\n        vNode = vNode.parent;\n      }\n      return reqContext;\n    }\n    function getAriaOwners(element) {\n      var owners = [], o = null;\n      while (element) {\n        if (element.getAttribute('id')) {\n          var id = escape_selector_default(element.getAttribute('id'));\n          var doc = get_root_node_default2(element);\n          o = doc.querySelector('[aria-owns~='.concat(id, ']'));\n          if (o) {\n            owners.push(o);\n          }\n        }\n        element = element.parentElement;\n      }\n      return owners.length ? owners : null;\n    }\n    function ariaRequiredParentEvaluate(node, options, virtualNode) {\n      var ownGroupRoles = options && Array.isArray(options.ownGroupRoles) ? options.ownGroupRoles : [];\n      var missingParents = getMissingContext(virtualNode, ownGroupRoles);\n      if (!missingParents) {\n        return true;\n      }\n      var owners = getAriaOwners(node);\n      if (owners) {\n        for (var _i17 = 0, l = owners.length; _i17 < l; _i17++) {\n          missingParents = getMissingContext(get_node_from_tree_default(owners[_i17]), ownGroupRoles, missingParents, true);\n          if (!missingParents) {\n            return true;\n          }\n        }\n      }\n      this.data(missingParents);\n      return false;\n    }\n    var aria_required_parent_evaluate_default = ariaRequiredParentEvaluate;\n    function ariaRoledescriptionEvaluate(node) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var role = get_role_default(node);\n      var supportedRoles = options.supportedRoles || [];\n      if (supportedRoles.includes(role)) {\n        return true;\n      }\n      if (role && role !== 'presentation' && role !== 'none') {\n        return void 0;\n      }\n      return false;\n    }\n    var aria_roledescription_evaluate_default = ariaRoledescriptionEvaluate;\n    function ariaUnsupportedAttrEvaluate(node, options, virtualNode) {\n      var unsupportedAttrs = virtualNode.attrNames.filter(function(name) {\n        var attribute = standards_default.ariaAttrs[name];\n        if (!validate_attr_default(name)) {\n          return false;\n        }\n        var unsupported4 = attribute.unsupported;\n        if (_typeof(unsupported4) !== 'object') {\n          return !!unsupported4;\n        }\n        return !matches_default3(node, unsupported4.exceptions);\n      });\n      if (unsupportedAttrs.length) {\n        this.data(unsupportedAttrs);\n        return true;\n      }\n      return false;\n    }\n    var aria_unsupported_attr_evaluate_default = ariaUnsupportedAttrEvaluate;\n    function ariaValidAttrEvaluate(node, options) {\n      options = Array.isArray(options.value) ? options.value : [];\n      var invalid = [], aria43 = /^aria-/;\n      var attr, attrs = get_node_attributes_default(node);\n      for (var i = 0, l = attrs.length; i < l; i++) {\n        attr = attrs[i].name;\n        if (options.indexOf(attr) === -1 && aria43.test(attr) && !validate_attr_default(attr)) {\n          invalid.push(attr);\n        }\n      }\n      if (invalid.length) {\n        this.data(invalid);\n        return false;\n      }\n      return true;\n    }\n    var aria_valid_attr_evaluate_default = ariaValidAttrEvaluate;\n    function ariaValidAttrValueEvaluate(node, options) {\n      options = Array.isArray(options.value) ? options.value : [];\n      var needsReview = '';\n      var messageKey = '';\n      var invalid = [];\n      var aria43 = /^aria-/;\n      var attrs = get_node_attributes_default(node);\n      var skipAttrs = [ 'aria-errormessage' ];\n      var preChecks = {\n        'aria-controls': function ariaControls() {\n          return node.getAttribute('aria-expanded') !== 'false' && node.getAttribute('aria-selected') !== 'false';\n        },\n        'aria-current': function ariaCurrent() {\n          if (!validate_attr_value_default(node, 'aria-current')) {\n            needsReview = 'aria-current=\"'.concat(node.getAttribute('aria-current'), '\"');\n            messageKey = 'ariaCurrent';\n          }\n          return;\n        },\n        'aria-owns': function ariaOwns() {\n          return node.getAttribute('aria-expanded') !== 'false';\n        },\n        'aria-describedby': function ariaDescribedby() {\n          if (!validate_attr_value_default(node, 'aria-describedby')) {\n            needsReview = 'aria-describedby=\"'.concat(node.getAttribute('aria-describedby'), '\"');\n            messageKey = 'noId';\n          }\n          return;\n        },\n        'aria-labelledby': function ariaLabelledby() {\n          if (!validate_attr_value_default(node, 'aria-labelledby')) {\n            needsReview = 'aria-labelledby=\"'.concat(node.getAttribute('aria-labelledby'), '\"');\n            messageKey = 'noId';\n          }\n        }\n      };\n      for (var _i18 = 0, l = attrs.length; _i18 < l; _i18++) {\n        var attr = attrs[_i18];\n        var attrName = attr.name;\n        if (!skipAttrs.includes(attrName) && options.indexOf(attrName) === -1 && aria43.test(attrName) && (preChecks[attrName] ? preChecks[attrName]() : true) && !validate_attr_value_default(node, attrName)) {\n          invalid.push(''.concat(attrName, '=\"').concat(attr.nodeValue, '\"'));\n        }\n      }\n      if (needsReview) {\n        this.data({\n          messageKey: messageKey,\n          needsReview: needsReview\n        });\n        return void 0;\n      }\n      if (invalid.length) {\n        this.data(invalid);\n        return false;\n      }\n      return true;\n    }\n    var aria_valid_attr_value_evaluate_default = ariaValidAttrValueEvaluate;\n    function fallbackroleEvaluate(node, options, virtualNode) {\n      return token_list_default(virtualNode.attr('role')).length > 1;\n    }\n    var fallbackrole_evaluate_default = fallbackroleEvaluate;\n    function hasGlobalAriaAttributeEvaluate(node, options, virtualNode) {\n      var globalAttrs = get_global_aria_attrs_default().filter(function(attr) {\n        return virtualNode.hasAttr(attr);\n      });\n      this.data(globalAttrs);\n      return globalAttrs.length > 0;\n    }\n    var has_global_aria_attribute_evaluate_default = hasGlobalAriaAttributeEvaluate;\n    function hasWidgetRoleEvaluate(node) {\n      var role = node.getAttribute('role');\n      if (role === null) {\n        return false;\n      }\n      var roleType = get_role_type_default(role);\n      return roleType === 'widget' || roleType === 'composite';\n    }\n    var has_widget_role_evaluate_default = hasWidgetRoleEvaluate;\n    function invalidroleEvaluate(node, options, virtualNode) {\n      var allRoles = token_list_default(virtualNode.attr('role'));\n      var allInvalid = allRoles.every(function(role) {\n        return !is_valid_role_default(role, {\n          allowAbstract: true\n        });\n      });\n      if (allInvalid) {\n        this.data(allRoles);\n        return true;\n      }\n      return false;\n    }\n    var invalidrole_evaluate_default = invalidroleEvaluate;\n    function isElementFocusableEvaluate(node, options, virtualNode) {\n      return is_focusable_default(virtualNode);\n    }\n    var is_element_focusable_evaluate_default = isElementFocusableEvaluate;\n    function noImplicitExplicitLabelEvaluate(node, options, virtualNode) {\n      var role = get_role_default(virtualNode, {\n        noImplicit: true\n      });\n      this.data(role);\n      var label5;\n      var accText;\n      try {\n        label5 = sanitize_default(label_text_default(virtualNode)).toLowerCase();\n        accText = sanitize_default(accessible_text_virtual_default(virtualNode)).toLowerCase();\n      } catch (e) {\n        return void 0;\n      }\n      if (!accText && !label5) {\n        return false;\n      }\n      if (!accText && label5) {\n        return void 0;\n      }\n      if (!accText.includes(label5)) {\n        return void 0;\n      }\n      return false;\n    }\n    var no_implicit_explicit_label_evaluate_default = noImplicitExplicitLabelEvaluate;\n    function unsupportedroleEvaluate(node, options, virtualNode) {\n      return is_unsupported_role_default(get_role_default(virtualNode));\n    }\n    var unsupportedrole_evaluate_default = unsupportedroleEvaluate;\n    var VALID_TAG_NAMES_FOR_SCROLLABLE_REGIONS = {\n      ARTICLE: true,\n      ASIDE: true,\n      NAV: true,\n      SECTION: true\n    };\n    var VALID_ROLES_FOR_SCROLLABLE_REGIONS = {\n      application: true,\n      banner: false,\n      complementary: true,\n      contentinfo: true,\n      form: true,\n      main: true,\n      navigation: true,\n      region: true,\n      search: false\n    };\n    function validScrollableTagName(node) {\n      var nodeName2 = node.nodeName.toUpperCase();\n      return VALID_TAG_NAMES_FOR_SCROLLABLE_REGIONS[nodeName2] || false;\n    }\n    function validScrollableRole(node, options) {\n      var role = get_explicit_role_default(node);\n      if (!role) {\n        return false;\n      }\n      return VALID_ROLES_FOR_SCROLLABLE_REGIONS[role] || options.roles.includes(role) || false;\n    }\n    function validScrollableSemanticsEvaluate(node, options) {\n      return validScrollableRole(node, options) || validScrollableTagName(node);\n    }\n    var valid_scrollable_semantics_evaluate_default = validScrollableSemanticsEvaluate;\n    var table_exports = {};\n    __export(table_exports, {\n      getAllCells: function getAllCells() {\n        return get_all_cells_default;\n      },\n      getCellPosition: function getCellPosition() {\n        return get_cell_position_default;\n      },\n      getHeaders: function getHeaders() {\n        return get_headers_default;\n      },\n      getScope: function getScope() {\n        return get_scope_default;\n      },\n      isColumnHeader: function isColumnHeader() {\n        return is_column_header_default;\n      },\n      isDataCell: function isDataCell() {\n        return is_data_cell_default;\n      },\n      isDataTable: function isDataTable() {\n        return is_data_table_default;\n      },\n      isHeader: function isHeader() {\n        return is_header_default;\n      },\n      isRowHeader: function isRowHeader() {\n        return is_row_header_default;\n      },\n      toArray: function toArray() {\n        return to_grid_default;\n      },\n      toGrid: function toGrid() {\n        return to_grid_default;\n      },\n      traverse: function traverse() {\n        return traverse_default;\n      }\n    });\n    function getAllCells(tableElm) {\n      var rowIndex, cellIndex, rowLength, cellLength;\n      var cells = [];\n      for (rowIndex = 0, rowLength = tableElm.rows.length; rowIndex < rowLength; rowIndex++) {\n        for (cellIndex = 0, cellLength = tableElm.rows[rowIndex].cells.length; cellIndex < cellLength; cellIndex++) {\n          cells.push(tableElm.rows[rowIndex].cells[cellIndex]);\n        }\n      }\n      return cells;\n    }\n    var get_all_cells_default = getAllCells;\n    function traverseForHeaders(headerType, position, tableGrid) {\n      var property = headerType === 'row' ? '_rowHeaders' : '_colHeaders';\n      var predicate = headerType === 'row' ? is_row_header_default : is_column_header_default;\n      var startCell = tableGrid[position.y][position.x];\n      var colspan = startCell.colSpan - 1;\n      var rowspanAttr = startCell.getAttribute('rowspan');\n      var rowspanValue = parseInt(rowspanAttr) === 0 || startCell.rowspan === 0 ? tableGrid.length : startCell.rowSpan;\n      var rowspan = rowspanValue - 1;\n      var rowStart = position.y + rowspan;\n      var colStart = position.x + colspan;\n      var rowEnd = headerType === 'row' ? position.y : 0;\n      var colEnd = headerType === 'row' ? 0 : position.x;\n      var headers;\n      var cells = [];\n      for (var row = rowStart; row >= rowEnd && !headers; row--) {\n        for (var col = colStart; col >= colEnd; col--) {\n          var cell = tableGrid[row] ? tableGrid[row][col] : void 0;\n          if (!cell) {\n            continue;\n          }\n          var vNode = axe.utils.getNodeFromTree(cell);\n          if (vNode[property]) {\n            headers = vNode[property];\n            break;\n          }\n          cells.push(cell);\n        }\n      }\n      headers = (headers || []).concat(cells.filter(predicate));\n      cells.forEach(function(tableCell) {\n        var vNode = axe.utils.getNodeFromTree(tableCell);\n        vNode[property] = headers;\n      });\n      return headers;\n    }\n    function getHeaders(cell, tableGrid) {\n      if (cell.getAttribute('headers')) {\n        var headers = idrefs_default(cell, 'headers');\n        if (headers.filter(function(header) {\n          return header;\n        }).length) {\n          return headers;\n        }\n      }\n      if (!tableGrid) {\n        tableGrid = to_grid_default(find_up_default(cell, 'table'));\n      }\n      var position = get_cell_position_default(cell, tableGrid);\n      var rowHeaders = traverseForHeaders('row', position, tableGrid);\n      var colHeaders = traverseForHeaders('col', position, tableGrid);\n      return [].concat(rowHeaders, colHeaders).reverse();\n    }\n    var get_headers_default = getHeaders;\n    function isDataCell(cell) {\n      if (!cell.children.length && !cell.textContent.trim()) {\n        return false;\n      }\n      var role = cell.getAttribute('role');\n      if (is_valid_role_default(role)) {\n        return [ 'cell', 'gridcell' ].includes(role);\n      } else {\n        return cell.nodeName.toUpperCase() === 'TD';\n      }\n    }\n    var is_data_cell_default = isDataCell;\n    function isDataTable(node) {\n      var role = (node.getAttribute('role') || '').toLowerCase();\n      if ((role === 'presentation' || role === 'none') && !is_focusable_default(node)) {\n        return false;\n      }\n      if (node.getAttribute('contenteditable') === 'true' || find_up_default(node, '[contenteditable=\"true\"]')) {\n        return true;\n      }\n      if (role === 'grid' || role === 'treegrid' || role === 'table') {\n        return true;\n      }\n      if (get_role_type_default(role) === 'landmark') {\n        return true;\n      }\n      if (node.getAttribute('datatable') === '0') {\n        return false;\n      }\n      if (node.getAttribute('summary')) {\n        return true;\n      }\n      if (node.tHead || node.tFoot || node.caption) {\n        return true;\n      }\n      for (var childIndex = 0, childLength = node.children.length; childIndex < childLength; childIndex++) {\n        if (node.children[childIndex].nodeName.toUpperCase() === 'COLGROUP') {\n          return true;\n        }\n      }\n      var cells = 0;\n      var rowLength = node.rows.length;\n      var row, cell;\n      var hasBorder = false;\n      for (var rowIndex = 0; rowIndex < rowLength; rowIndex++) {\n        row = node.rows[rowIndex];\n        for (var cellIndex = 0, cellLength = row.cells.length; cellIndex < cellLength; cellIndex++) {\n          cell = row.cells[cellIndex];\n          if (cell.nodeName.toUpperCase() === 'TH') {\n            return true;\n          }\n          if (!hasBorder && (cell.offsetWidth !== cell.clientWidth || cell.offsetHeight !== cell.clientHeight)) {\n            hasBorder = true;\n          }\n          if (cell.getAttribute('scope') || cell.getAttribute('headers') || cell.getAttribute('abbr')) {\n            return true;\n          }\n          if ([ 'columnheader', 'rowheader' ].includes((cell.getAttribute('role') || '').toLowerCase())) {\n            return true;\n          }\n          if (cell.children.length === 1 && cell.children[0].nodeName.toUpperCase() === 'ABBR') {\n            return true;\n          }\n          cells++;\n        }\n      }\n      if (node.getElementsByTagName('table').length) {\n        return false;\n      }\n      if (rowLength < 2) {\n        return false;\n      }\n      var sampleRow = node.rows[Math.ceil(rowLength / 2)];\n      if (sampleRow.cells.length === 1 && sampleRow.cells[0].colSpan === 1) {\n        return false;\n      }\n      if (sampleRow.cells.length >= 5) {\n        return true;\n      }\n      if (hasBorder) {\n        return true;\n      }\n      var bgColor, bgImage;\n      for (rowIndex = 0; rowIndex < rowLength; rowIndex++) {\n        row = node.rows[rowIndex];\n        if (bgColor && bgColor !== window.getComputedStyle(row).getPropertyValue('background-color')) {\n          return true;\n        } else {\n          bgColor = window.getComputedStyle(row).getPropertyValue('background-color');\n        }\n        if (bgImage && bgImage !== window.getComputedStyle(row).getPropertyValue('background-image')) {\n          return true;\n        } else {\n          bgImage = window.getComputedStyle(row).getPropertyValue('background-image');\n        }\n      }\n      if (rowLength >= 20) {\n        return true;\n      }\n      if (get_element_coordinates_default(node).width > get_viewport_size_default(window).width * .95) {\n        return false;\n      }\n      if (cells < 10) {\n        return false;\n      }\n      if (node.querySelector('object, embed, iframe, applet')) {\n        return false;\n      }\n      return true;\n    }\n    var is_data_table_default = isDataTable;\n    function isHeader(cell) {\n      if (is_column_header_default(cell) || is_row_header_default(cell)) {\n        return true;\n      }\n      if (cell.getAttribute('id')) {\n        var id = escape_selector_default(cell.getAttribute('id'));\n        return !!document.querySelector('[headers~=\"'.concat(id, '\"]'));\n      }\n      return false;\n    }\n    var is_header_default = isHeader;\n    function traverseTable(dir, position, tableGrid, callback) {\n      var result;\n      var cell = tableGrid[position.y] ? tableGrid[position.y][position.x] : void 0;\n      if (!cell) {\n        return [];\n      }\n      if (typeof callback === 'function') {\n        result = callback(cell, position, tableGrid);\n        if (result === true) {\n          return [ cell ];\n        }\n      }\n      result = traverseTable(dir, {\n        x: position.x + dir.x,\n        y: position.y + dir.y\n      }, tableGrid, callback);\n      result.unshift(cell);\n      return result;\n    }\n    function traverse(dir, startPos, tableGrid, callback) {\n      if (Array.isArray(startPos)) {\n        callback = tableGrid;\n        tableGrid = startPos;\n        startPos = {\n          x: 0,\n          y: 0\n        };\n      }\n      if (typeof dir === 'string') {\n        switch (dir) {\n         case 'left':\n          dir = {\n            x: -1,\n            y: 0\n          };\n          break;\n\n         case 'up':\n          dir = {\n            x: 0,\n            y: -1\n          };\n          break;\n\n         case 'right':\n          dir = {\n            x: 1,\n            y: 0\n          };\n          break;\n\n         case 'down':\n          dir = {\n            x: 0,\n            y: 1\n          };\n          break;\n        }\n      }\n      return traverseTable(dir, {\n        x: startPos.x + dir.x,\n        y: startPos.y + dir.y\n      }, tableGrid, callback);\n    }\n    var traverse_default = traverse;\n    function captionFakedEvaluate(node) {\n      var table5 = to_grid_default(node);\n      var firstRow = table5[0];\n      if (table5.length <= 1 || firstRow.length <= 1 || node.rows.length <= 1) {\n        return true;\n      }\n      return firstRow.reduce(function(out, curr, i) {\n        return out || curr !== firstRow[i + 1] && firstRow[i + 1] !== void 0;\n      }, false);\n    }\n    var caption_faked_evaluate_default = captionFakedEvaluate;\n    function html5ScopeEvaluate(node) {\n      if (!is_html5_default(document)) {\n        return true;\n      }\n      return node.nodeName.toUpperCase() === 'TH';\n    }\n    var html5_scope_evaluate_default = html5ScopeEvaluate;\n    function sameCaptionSummaryEvaluate(node) {\n      return !!(node.summary && node.caption) && node.summary.toLowerCase() === accessible_text_default(node.caption).toLowerCase();\n    }\n    var same_caption_summary_evaluate_default = sameCaptionSummaryEvaluate;\n    function scopeValueEvaluate(node, options) {\n      var value = node.getAttribute('scope').toLowerCase();\n      return options.values.indexOf(value) !== -1;\n    }\n    var scope_value_evaluate_default = scopeValueEvaluate;\n    function tdHasHeaderEvaluate(node) {\n      var badCells = [];\n      var cells = get_all_cells_default(node);\n      var tableGrid = to_grid_default(node);\n      cells.forEach(function(cell) {\n        if (has_content_default(cell) && is_data_cell_default(cell) && !label_default2(cell)) {\n          var hasHeaders = get_headers_default(cell, tableGrid).some(function(header) {\n            return header !== null && !!has_content_default(header);\n          });\n          if (!hasHeaders) {\n            badCells.push(cell);\n          }\n        }\n      });\n      if (badCells.length) {\n        this.relatedNodes(badCells);\n        return false;\n      }\n      return true;\n    }\n    var td_has_header_evaluate_default = tdHasHeaderEvaluate;\n    function tdHeadersAttrEvaluate(node) {\n      var cells = [];\n      var reviewCells = [];\n      var badCells = [];\n      for (var rowIndex = 0; rowIndex < node.rows.length; rowIndex++) {\n        var row = node.rows[rowIndex];\n        for (var cellIndex = 0; cellIndex < row.cells.length; cellIndex++) {\n          cells.push(row.cells[cellIndex]);\n        }\n      }\n      var ids = cells.reduce(function(ids2, cell) {\n        if (cell.getAttribute('id')) {\n          ids2.push(cell.getAttribute('id'));\n        }\n        return ids2;\n      }, []);\n      cells.forEach(function(cell) {\n        var isSelf = false;\n        var notOfTable = false;\n        if (!cell.hasAttribute('headers')) {\n          return;\n        }\n        var headersAttr = cell.getAttribute('headers').trim();\n        if (!headersAttr) {\n          return reviewCells.push(cell);\n        }\n        var headers = token_list_default(headersAttr);\n        if (headers.length !== 0) {\n          if (cell.getAttribute('id')) {\n            isSelf = headers.indexOf(cell.getAttribute('id').trim()) !== -1;\n          }\n          notOfTable = headers.some(function(header) {\n            return !ids.includes(header);\n          });\n          if (isSelf || notOfTable) {\n            badCells.push(cell);\n          }\n        }\n      });\n      if (badCells.length > 0) {\n        this.relatedNodes(badCells);\n        return false;\n      }\n      if (reviewCells.length) {\n        this.relatedNodes(reviewCells);\n        return void 0;\n      }\n      return true;\n    }\n    var td_headers_attr_evaluate_default = tdHeadersAttrEvaluate;\n    function thHasDataCellsEvaluate(node) {\n      var cells = get_all_cells_default(node);\n      var checkResult = this;\n      var reffedHeaders = [];\n      cells.forEach(function(cell) {\n        var headers2 = cell.getAttribute('headers');\n        if (headers2) {\n          reffedHeaders = reffedHeaders.concat(headers2.split(/\\s+/));\n        }\n        var ariaLabel = cell.getAttribute('aria-labelledby');\n        if (ariaLabel) {\n          reffedHeaders = reffedHeaders.concat(ariaLabel.split(/\\s+/));\n        }\n      });\n      var headers = cells.filter(function(cell) {\n        if (sanitize_default(cell.textContent) === '') {\n          return false;\n        }\n        return cell.nodeName.toUpperCase() === 'TH' || [ 'rowheader', 'columnheader' ].indexOf(cell.getAttribute('role')) !== -1;\n      });\n      var tableGrid = to_grid_default(node);\n      var out = true;\n      headers.forEach(function(header) {\n        if (header.getAttribute('id') && reffedHeaders.includes(header.getAttribute('id'))) {\n          return;\n        }\n        var pos = get_cell_position_default(header, tableGrid);\n        var hasCell = false;\n        if (is_column_header_default(header)) {\n          hasCell = traverse_default('down', pos, tableGrid).find(function(cell) {\n            return !is_column_header_default(cell) && get_headers_default(cell, tableGrid).includes(header);\n          });\n        }\n        if (!hasCell && is_row_header_default(header)) {\n          hasCell = traverse_default('right', pos, tableGrid).find(function(cell) {\n            return !is_row_header_default(cell) && get_headers_default(cell, tableGrid).includes(header);\n          });\n        }\n        if (!hasCell) {\n          checkResult.relatedNodes(header);\n        }\n        out = out && hasCell;\n      });\n      return out ? true : void 0;\n    }\n    var th_has_data_cells_evaluate_default = thHasDataCellsEvaluate;\n    function hiddenContentEvaluate(node, options, virtualNode) {\n      var whitelist = [ 'SCRIPT', 'HEAD', 'TITLE', 'NOSCRIPT', 'STYLE', 'TEMPLATE' ];\n      if (!whitelist.includes(node.nodeName.toUpperCase()) && has_content_virtual_default(virtualNode)) {\n        var styles = window.getComputedStyle(node);\n        if (styles.getPropertyValue('display') === 'none') {\n          return void 0;\n        } else if (styles.getPropertyValue('visibility') === 'hidden') {\n          var parent = get_composed_parent_default(node);\n          var parentStyle = parent && window.getComputedStyle(parent);\n          if (!parentStyle || parentStyle.getPropertyValue('visibility') !== 'hidden') {\n            return void 0;\n          }\n        }\n      }\n      return true;\n    }\n    var hidden_content_evaluate_default = hiddenContentEvaluate;\n    var color_exports = {};\n    __export(color_exports, {\n      Color: function Color() {\n        return color_default;\n      },\n      centerPointOfRect: function centerPointOfRect() {\n        return center_point_of_rect_default;\n      },\n      elementHasImage: function elementHasImage() {\n        return element_has_image_default;\n      },\n      elementIsDistinct: function elementIsDistinct() {\n        return element_is_distinct_default;\n      },\n      filteredRectStack: function filteredRectStack() {\n        return filtered_rect_stack_default;\n      },\n      flattenColors: function flattenColors() {\n        return flatten_colors_default;\n      },\n      getBackgroundColor: function getBackgroundColor() {\n        return get_background_color_default;\n      },\n      getBackgroundStack: function getBackgroundStack() {\n        return get_background_stack_default;\n      },\n      getContrast: function getContrast() {\n        return get_contrast_default;\n      },\n      getForegroundColor: function getForegroundColor() {\n        return get_foreground_color_default;\n      },\n      getOwnBackgroundColor: function getOwnBackgroundColor() {\n        return get_own_background_color_default;\n      },\n      getRectStack: function getRectStack() {\n        return get_rect_stack_default;\n      },\n      getTextShadowColors: function getTextShadowColors() {\n        return get_text_shadow_colors_default;\n      },\n      hasValidContrastRatio: function hasValidContrastRatio() {\n        return has_valid_contrast_ratio_default;\n      },\n      incompleteData: function incompleteData() {\n        return incomplete_data_default;\n      }\n    });\n    function centerPointOfRect(rect) {\n      if (rect.left > window.innerWidth) {\n        return void 0;\n      }\n      if (rect.top > window.innerHeight) {\n        return void 0;\n      }\n      var x = Math.min(Math.ceil(rect.left + rect.width / 2), window.innerWidth - 1);\n      var y = Math.min(Math.ceil(rect.top + rect.height / 2), window.innerHeight - 1);\n      return {\n        x: x,\n        y: y\n      };\n    }\n    var center_point_of_rect_default = centerPointOfRect;\n    function _getFonts(style) {\n      return style.getPropertyValue('font-family').split(/[,;]/g).map(function(font) {\n        return font.trim().toLowerCase();\n      });\n    }\n    function elementIsDistinct(node, ancestorNode) {\n      var nodeStyle = window.getComputedStyle(node);\n      if (nodeStyle.getPropertyValue('background-image') !== 'none') {\n        return true;\n      }\n      var hasBorder = [ 'border-bottom', 'border-top', 'outline' ].reduce(function(result, edge) {\n        var borderClr = new color_default();\n        borderClr.parseString(nodeStyle.getPropertyValue(edge + '-color'));\n        return result || nodeStyle.getPropertyValue(edge + '-style') !== 'none' && parseFloat(nodeStyle.getPropertyValue(edge + '-width')) > 0 && borderClr.alpha !== 0;\n      }, false);\n      if (hasBorder) {\n        return true;\n      }\n      var parentStyle = window.getComputedStyle(ancestorNode);\n      if (_getFonts(nodeStyle)[0] !== _getFonts(parentStyle)[0]) {\n        return true;\n      }\n      var hasStyle = [ 'text-decoration-line', 'text-decoration-style', 'font-weight', 'font-style', 'font-size' ].reduce(function(result, cssProp) {\n        return result || nodeStyle.getPropertyValue(cssProp) !== parentStyle.getPropertyValue(cssProp);\n      }, false);\n      var tDec = nodeStyle.getPropertyValue('text-decoration');\n      if (tDec.split(' ').length < 3) {\n        hasStyle = hasStyle || tDec !== parentStyle.getPropertyValue('text-decoration');\n      }\n      return hasStyle;\n    }\n    var element_is_distinct_default = elementIsDistinct;\n    function getRectStack2(elm) {\n      var boundingStack = get_element_stack_default(elm);\n      var filteredArr = get_text_element_stack_default(elm);\n      if (!filteredArr || filteredArr.length <= 1) {\n        return [ boundingStack ];\n      }\n      if (filteredArr.some(function(stack) {\n        return stack === void 0;\n      })) {\n        return null;\n      }\n      filteredArr.splice(0, 0, boundingStack);\n      return filteredArr;\n    }\n    var get_rect_stack_default = getRectStack2;\n    function filteredRectStack(elm) {\n      var rectStack = get_rect_stack_default(elm);\n      if (rectStack && rectStack.length === 1) {\n        return rectStack[0];\n      }\n      if (rectStack && rectStack.length > 1) {\n        var boundingStack = rectStack.shift();\n        var isSame;\n        rectStack.forEach(function(rectList, index) {\n          if (index === 0) {\n            return;\n          }\n          var rectA = rectStack[index - 1], rectB = rectStack[index];\n          isSame = rectA.every(function(element, elementIndex) {\n            return element === rectB[elementIndex];\n          }) || boundingStack.includes(elm);\n        });\n        if (!isSame) {\n          incomplete_data_default.set('bgColor', 'elmPartiallyObscuring');\n          return null;\n        }\n        return rectStack[0];\n      }\n      incomplete_data_default.set('bgColor', 'outsideViewport');\n      return null;\n    }\n    var filtered_rect_stack_default = filteredRectStack;\n    function flattenColors(fgColor, bgColor) {\n      var alpha = fgColor.alpha;\n      var r = (1 - alpha) * bgColor.red + alpha * fgColor.red;\n      var g = (1 - alpha) * bgColor.green + alpha * fgColor.green;\n      var b = (1 - alpha) * bgColor.blue + alpha * fgColor.blue;\n      var a = fgColor.alpha + bgColor.alpha * (1 - fgColor.alpha);\n      return new color_default(r, g, b, a);\n    }\n    var flatten_colors_default = flattenColors;\n    function contentOverlapping(targetElement, bgNode) {\n      var targetRect = targetElement.getClientRects()[0];\n      var obscuringElements = shadow_elements_from_point_default(targetRect.left, targetRect.top);\n      if (obscuringElements) {\n        for (var i = 0; i < obscuringElements.length; i++) {\n          if (obscuringElements[i] !== targetElement && obscuringElements[i] === bgNode) {\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n    function calculateObscuringElement(elmIndex, elmStack, originalElm) {\n      if (elmIndex > 0) {\n        for (var i = elmIndex - 1; i >= 0; i--) {\n          var bgElm = elmStack[i];\n          if (contentOverlapping(originalElm, bgElm)) {\n            return true;\n          } else {\n            elmStack.splice(i, 1);\n          }\n        }\n      }\n      return false;\n    }\n    function sortPageBackground(elmStack) {\n      var bodyIndex = elmStack.indexOf(document.body);\n      var bgNodes = elmStack;\n      var sortBodyElement = bodyIndex > 1 || bodyIndex === -1;\n      if (sortBodyElement && !element_has_image_default(document.documentElement) && get_own_background_color_default(window.getComputedStyle(document.documentElement)).alpha === 0) {\n        if (bodyIndex > 1) {\n          bgNodes.splice(bodyIndex, 1);\n        }\n        bgNodes.splice(elmStack.indexOf(document.documentElement), 1);\n        bgNodes.push(document.body);\n      }\n      return bgNodes;\n    }\n    function getBackgroundStack(elm) {\n      var elmStack = filtered_rect_stack_default(elm);\n      if (elmStack === null) {\n        return null;\n      }\n      elmStack = reduce_to_elements_below_floating_default(elmStack, elm);\n      elmStack = sortPageBackground(elmStack);\n      var elmIndex = elmStack.indexOf(elm);\n      if (calculateObscuringElement(elmIndex, elmStack, elm)) {\n        incomplete_data_default.set('bgColor', 'bgOverlap');\n        return null;\n      }\n      return elmIndex !== -1 ? elmStack : null;\n    }\n    var get_background_stack_default = getBackgroundStack;\n    function getTextShadowColors(node) {\n      var _ref43 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, minRatio = _ref43.minRatio, maxRatio = _ref43.maxRatio;\n      var style = window.getComputedStyle(node);\n      var textShadow = style.getPropertyValue('text-shadow');\n      if (textShadow === 'none') {\n        return [];\n      }\n      var fontSizeStr = style.getPropertyValue('font-size');\n      var fontSize = parseInt(fontSizeStr);\n      assert_default(isNaN(fontSize) === false, 'Unable to determine font-size value '.concat(fontSizeStr));\n      var shadowColors = [];\n      var shadows = parseTextShadows(textShadow);\n      shadows.forEach(function(_ref44) {\n        var colorStr = _ref44.colorStr, pixels = _ref44.pixels;\n        colorStr = colorStr || style.getPropertyValue('color');\n        var _pixels = _slicedToArray(pixels, 3), offsetY = _pixels[0], offsetX = _pixels[1], _pixels$ = _pixels[2], blurRadius = _pixels$ === void 0 ? 0 : _pixels$;\n        if ((!minRatio || blurRadius >= fontSize * minRatio) && (!maxRatio || blurRadius < fontSize * maxRatio)) {\n          var color10 = textShadowColor({\n            colorStr: colorStr,\n            offsetY: offsetY,\n            offsetX: offsetX,\n            blurRadius: blurRadius,\n            fontSize: fontSize\n          });\n          shadowColors.push(color10);\n        }\n      });\n      return shadowColors;\n    }\n    function parseTextShadows(textShadow) {\n      var current = {\n        pixels: []\n      };\n      var str = textShadow.trim();\n      var shadows = [ current ];\n      if (!str) {\n        return [];\n      }\n      while (str) {\n        var colorMatch = str.match(/^rgba?\\([0-9,.\\s]+\\)/i) || str.match(/^[a-z]+/i) || str.match(/^#[0-9a-f]+/i);\n        var pixelMatch = str.match(/^([0-9.-]+)px/i) || str.match(/^(0)/);\n        if (colorMatch) {\n          assert_default(!current.colorStr, 'Multiple colors identified in text-shadow: '.concat(textShadow));\n          str = str.replace(colorMatch[0], '').trim();\n          current.colorStr = colorMatch[0];\n        } else if (pixelMatch) {\n          assert_default(current.pixels.length < 3, 'Too many pixel units in text-shadow: '.concat(textShadow));\n          str = str.replace(pixelMatch[0], '').trim();\n          var pixelUnit = parseFloat((pixelMatch[1][0] === '.' ? '0' : '') + pixelMatch[1]);\n          current.pixels.push(pixelUnit);\n        } else if (str[0] === ',') {\n          assert_default(current.pixels.length >= 2, 'Missing pixel value in text-shadow: '.concat(textShadow));\n          current = {\n            pixels: []\n          };\n          shadows.push(current);\n          str = str.substr(1).trim();\n        } else {\n          throw new Error('Unable to process text-shadows: '.concat(textShadow));\n        }\n      }\n      return shadows;\n    }\n    function textShadowColor(_ref45) {\n      var colorStr = _ref45.colorStr, offsetX = _ref45.offsetX, offsetY = _ref45.offsetY, blurRadius = _ref45.blurRadius, fontSize = _ref45.fontSize;\n      if (offsetX > blurRadius || offsetY > blurRadius) {\n        return new color_default(0, 0, 0, 0);\n      }\n      var shadowColor = new color_default();\n      shadowColor.parseString(colorStr);\n      shadowColor.alpha *= blurRadiusToAlpha(blurRadius, fontSize);\n      return shadowColor;\n    }\n    function blurRadiusToAlpha(blurRadius, fontSize) {\n      var relativeBlur = blurRadius / fontSize;\n      return .185 / (relativeBlur + .4);\n    }\n    var get_text_shadow_colors_default = getTextShadowColors;\n    function elmPartiallyObscured(elm, bgElm, bgColor) {\n      var obscured = elm !== bgElm && !visually_contains_default(elm, bgElm) && bgColor.alpha !== 0;\n      if (obscured) {\n        incomplete_data_default.set('bgColor', 'elmPartiallyObscured');\n      }\n      return obscured;\n    }\n    function getBackgroundColor(elm) {\n      var bgElms = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n      var shadowOutlineEmMax = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : .1;\n      var bgColors = get_text_shadow_colors_default(elm, {\n        minRatio: shadowOutlineEmMax\n      });\n      var elmStack = get_background_stack_default(elm);\n      (elmStack || []).some(function(bgElm) {\n        var bgElmStyle = window.getComputedStyle(bgElm);\n        var bgColor = get_own_background_color_default(bgElmStyle);\n        if (elmPartiallyObscured(elm, bgElm, bgColor) || element_has_image_default(bgElm, bgElmStyle)) {\n          bgColors = null;\n          bgElms.push(bgElm);\n          return true;\n        }\n        if (bgColor.alpha !== 0) {\n          bgElms.push(bgElm);\n          bgColors.push(bgColor);\n          return bgColor.alpha === 1;\n        } else {\n          return false;\n        }\n      });\n      if (bgColors === null || elmStack === null) {\n        return null;\n      }\n      bgColors.push(new color_default(255, 255, 255, 1));\n      var colors = bgColors.reduce(flatten_colors_default);\n      return colors;\n    }\n    var get_background_color_default = getBackgroundColor;\n    function getContrast(bgColor, fgColor) {\n      if (!fgColor || !bgColor) {\n        return null;\n      }\n      if (fgColor.alpha < 1) {\n        fgColor = flatten_colors_default(fgColor, bgColor);\n      }\n      var bL = bgColor.getRelativeLuminance();\n      var fL = fgColor.getRelativeLuminance();\n      return (Math.max(fL, bL) + .05) / (Math.min(fL, bL) + .05);\n    }\n    var get_contrast_default = getContrast;\n    function getOpacity(node) {\n      if (!node) {\n        return 1;\n      }\n      var vNode = get_node_from_tree_default(node);\n      if (vNode && vNode._opacity !== void 0 && vNode._opacity !== null) {\n        return vNode._opacity;\n      }\n      var nodeStyle = window.getComputedStyle(node);\n      var opacity = nodeStyle.getPropertyValue('opacity');\n      var finalOpacity = opacity * getOpacity(node.parentElement);\n      if (vNode) {\n        vNode._opacity = finalOpacity;\n      }\n      return finalOpacity;\n    }\n    function getForegroundColor(node, _, bgColor) {\n      var nodeStyle = window.getComputedStyle(node);\n      var fgColor = new color_default();\n      fgColor.parseString(nodeStyle.getPropertyValue('color'));\n      var opacity = getOpacity(node);\n      fgColor.alpha = fgColor.alpha * opacity;\n      if (fgColor.alpha === 1) {\n        return fgColor;\n      }\n      if (!bgColor) {\n        bgColor = get_background_color_default(node, []);\n      }\n      if (bgColor === null) {\n        var reason = incomplete_data_default.get('bgColor');\n        incomplete_data_default.set('fgColor', reason);\n        return null;\n      }\n      return flatten_colors_default(fgColor, bgColor);\n    }\n    var get_foreground_color_default = getForegroundColor;\n    function hasValidContrastRatio(bg, fg, fontSize, isBold) {\n      var contrast = get_contrast_default(bg, fg);\n      var isSmallFont = isBold && Math.ceil(fontSize * 72) / 96 < 14 || !isBold && Math.ceil(fontSize * 72) / 96 < 18;\n      var expectedContrastRatio = isSmallFont ? 4.5 : 3;\n      return {\n        isValid: contrast > expectedContrastRatio,\n        contrastRatio: contrast,\n        expectedContrastRatio: expectedContrastRatio\n      };\n    }\n    var has_valid_contrast_ratio_default = hasValidContrastRatio;\n    var hasPsuedoElement = memoize_default(function hasPsuedoElement2(node, pseudo) {\n      var style = window.getComputedStyle(node, pseudo);\n      var backgroundColor = get_own_background_color_default(style);\n      return style.getPropertyValue('content') !== 'none' && style.getPropertyValue('position') === 'absolute' && parseInt(style.getPropertyValue('width')) !== 0 && parseInt(style.getPropertyValue('height')) !== 0 && (backgroundColor.alpha !== 0 || style.getPropertyValue('background-image') !== 'none');\n    });\n    function colorContrastEvaluate(node, options, virtualNode) {\n      if (!is_visible_default(node, false)) {\n        return true;\n      }\n      var ignoreUnicode = options.ignoreUnicode, ignoreLength = options.ignoreLength, boldValue = options.boldValue, boldTextPt = options.boldTextPt, largeTextPt = options.largeTextPt, contrastRatio = options.contrastRatio, shadowOutlineEmMax = options.shadowOutlineEmMax;\n      var visibleText = visible_virtual_default(virtualNode, false, true);\n      var textContainsOnlyUnicode = has_unicode_default(visibleText, {\n        nonBmp: true\n      }) && sanitize_default(remove_unicode_default(visibleText, {\n        nonBmp: true\n      })) === '';\n      if (textContainsOnlyUnicode && ignoreUnicode) {\n        this.data({\n          messageKey: 'nonBmp'\n        });\n        return void 0;\n      }\n      var bgNodes = [];\n      var bgColor = get_background_color_default(node, bgNodes, shadowOutlineEmMax);\n      var fgColor = get_foreground_color_default(node, false, bgColor);\n      var shadowColors = get_text_shadow_colors_default(node, {\n        maxRatio: shadowOutlineEmMax\n      });\n      var nodeStyle = window.getComputedStyle(node);\n      var fontSize = parseFloat(nodeStyle.getPropertyValue('font-size'));\n      var fontWeight = nodeStyle.getPropertyValue('font-weight');\n      var bold = parseFloat(fontWeight) >= boldValue || fontWeight === 'bold';\n      var contrast = null;\n      if (shadowColors.length === 0) {\n        contrast = get_contrast_default(bgColor, fgColor);\n      } else if (fgColor && bgColor) {\n        var shadowColor = [].concat(_toConsumableArray(shadowColors), [ bgColor ]).reduce(flatten_colors_default);\n        var bgContrast = get_contrast_default(bgColor, shadowColor);\n        var fgContrast = get_contrast_default(shadowColor, fgColor);\n        contrast = Math.max(bgContrast, fgContrast);\n      }\n      var ptSize = Math.ceil(fontSize * 72) / 96;\n      var isSmallFont = bold && ptSize < boldTextPt || !bold && ptSize < largeTextPt;\n      var _ref46 = isSmallFont ? contrastRatio.normal : contrastRatio.large, expected = _ref46.expected, minThreshold = _ref46.minThreshold, maxThreshold = _ref46.maxThreshold;\n      var isValid = contrast > expected;\n      var parentNode = node.parentElement;\n      while (parentNode) {\n        if (hasPsuedoElement(parentNode, ':before') || hasPsuedoElement(parentNode, ':after')) {\n          this.data({\n            messageKey: 'pseudoContent'\n          });\n          this.relatedNodes(parentNode);\n          return void 0;\n        }\n        parentNode = parentNode.parentElement;\n      }\n      if (typeof minThreshold === 'number' && contrast < minThreshold || typeof maxThreshold === 'number' && contrast > maxThreshold) {\n        return true;\n      }\n      var truncatedResult = Math.floor(contrast * 100) / 100;\n      var missing;\n      if (bgColor === null) {\n        missing = incomplete_data_default.get('bgColor');\n      }\n      var equalRatio = truncatedResult === 1;\n      var shortTextContent = visibleText.length === 1;\n      if (equalRatio) {\n        missing = incomplete_data_default.set('bgColor', 'equalRatio');\n      } else if (shortTextContent && !ignoreLength) {\n        missing = 'shortTextContent';\n      }\n      var data2 = {\n        fgColor: fgColor ? fgColor.toHexString() : void 0,\n        bgColor: bgColor ? bgColor.toHexString() : void 0,\n        contrastRatio: truncatedResult,\n        fontSize: ''.concat((fontSize * 72 / 96).toFixed(1), 'pt (').concat(fontSize, 'px)'),\n        fontWeight: bold ? 'bold' : 'normal',\n        messageKey: missing,\n        expectedContrastRatio: expected + ':1'\n      };\n      this.data(data2);\n      if (fgColor === null || bgColor === null || equalRatio || shortTextContent && !ignoreLength && !isValid) {\n        missing = null;\n        incomplete_data_default.clear();\n        this.relatedNodes(bgNodes);\n        return void 0;\n      }\n      if (!isValid) {\n        this.relatedNodes(bgNodes);\n      }\n      return isValid;\n    }\n    var color_contrast_evaluate_default = colorContrastEvaluate;\n    function getContrast2(color1, color22) {\n      var c1lum = color1.getRelativeLuminance();\n      var c2lum = color22.getRelativeLuminance();\n      return (Math.max(c1lum, c2lum) + .05) / (Math.min(c1lum, c2lum) + .05);\n    }\n    var blockLike2 = [ 'block', 'list-item', 'table', 'flex', 'grid', 'inline-block' ];\n    function isBlock2(elm) {\n      var display = window.getComputedStyle(elm).getPropertyValue('display');\n      return blockLike2.indexOf(display) !== -1 || display.substr(0, 6) === 'table-';\n    }\n    function linkInTextBlockEvaluate(node) {\n      if (isBlock2(node)) {\n        return false;\n      }\n      var parentBlock = get_composed_parent_default(node);\n      while (parentBlock.nodeType === 1 && !isBlock2(parentBlock)) {\n        parentBlock = get_composed_parent_default(parentBlock);\n      }\n      this.relatedNodes([ parentBlock ]);\n      if (element_is_distinct_default(node, parentBlock)) {\n        return true;\n      } else {\n        var nodeColor, parentColor;\n        nodeColor = get_foreground_color_default(node);\n        parentColor = get_foreground_color_default(parentBlock);\n        if (!nodeColor || !parentColor) {\n          return void 0;\n        }\n        var contrast = getContrast2(nodeColor, parentColor);\n        if (contrast === 1) {\n          return true;\n        } else if (contrast >= 3) {\n          incomplete_data_default.set('fgColor', 'bgContrast');\n          this.data({\n            messageKey: incomplete_data_default.get('fgColor')\n          });\n          incomplete_data_default.clear();\n          return void 0;\n        }\n        nodeColor = get_background_color_default(node);\n        parentColor = get_background_color_default(parentBlock);\n        if (!nodeColor || !parentColor || getContrast2(nodeColor, parentColor) >= 3) {\n          var reason;\n          if (!nodeColor || !parentColor) {\n            reason = incomplete_data_default.get('bgColor');\n          } else {\n            reason = 'bgContrast';\n          }\n          incomplete_data_default.set('fgColor', reason);\n          this.data({\n            messageKey: incomplete_data_default.get('fgColor')\n          });\n          incomplete_data_default.clear();\n          return void 0;\n        }\n      }\n      return false;\n    }\n    var link_in_text_block_evaluate_default = linkInTextBlockEvaluate;\n    function autocompleteAppropriateEvaluate(node, options, virtualNode) {\n      if (virtualNode.props.nodeName !== 'input') {\n        return true;\n      }\n      var number = [ 'text', 'search', 'number', 'tel' ];\n      var url = [ 'text', 'search', 'url' ];\n      var allowedTypesMap = {\n        bday: [ 'text', 'search', 'date' ],\n        email: [ 'text', 'search', 'email' ],\n        username: [ 'text', 'search', 'email' ],\n        'street-address': [ 'text' ],\n        tel: [ 'text', 'search', 'tel' ],\n        'tel-country-code': [ 'text', 'search', 'tel' ],\n        'tel-national': [ 'text', 'search', 'tel' ],\n        'tel-area-code': [ 'text', 'search', 'tel' ],\n        'tel-local': [ 'text', 'search', 'tel' ],\n        'tel-local-prefix': [ 'text', 'search', 'tel' ],\n        'tel-local-suffix': [ 'text', 'search', 'tel' ],\n        'tel-extension': [ 'text', 'search', 'tel' ],\n        'cc-number': number,\n        'cc-exp': [ 'text', 'search', 'month', 'tel' ],\n        'cc-exp-month': number,\n        'cc-exp-year': number,\n        'cc-csc': number,\n        'transaction-amount': number,\n        'bday-day': number,\n        'bday-month': number,\n        'bday-year': number,\n        'new-password': [ 'text', 'search', 'password' ],\n        'current-password': [ 'text', 'search', 'password' ],\n        url: url,\n        photo: url,\n        impp: url\n      };\n      if (_typeof(options) === 'object') {\n        Object.keys(options).forEach(function(key) {\n          if (!allowedTypesMap[key]) {\n            allowedTypesMap[key] = [];\n          }\n          allowedTypesMap[key] = allowedTypesMap[key].concat(options[key]);\n        });\n      }\n      var autocompleteAttr = virtualNode.attr('autocomplete');\n      var autocompleteTerms = autocompleteAttr.split(/\\s+/g).map(function(term) {\n        return term.toLowerCase();\n      });\n      var purposeTerm = autocompleteTerms[autocompleteTerms.length - 1];\n      if (_autocomplete.stateTerms.includes(purposeTerm)) {\n        return true;\n      }\n      var allowedTypes = allowedTypesMap[purposeTerm];\n      var type = virtualNode.hasAttr('type') ? sanitize_default(virtualNode.attr('type')).toLowerCase() : 'text';\n      type = valid_input_type_default().includes(type) ? type : 'text';\n      if (typeof allowedTypes === 'undefined') {\n        return type === 'text';\n      }\n      return allowedTypes.includes(type);\n    }\n    var autocomplete_appropriate_evaluate_default = autocompleteAppropriateEvaluate;\n    function autocompleteValidEvaluate(node, options, virtualNode) {\n      var autocomplete2 = virtualNode.attr('autocomplete') || '';\n      return is_valid_autocomplete_default(autocomplete2, options);\n    }\n    var autocomplete_valid_evaluate_default = autocompleteValidEvaluate;\n    function attrNonSpaceContentEvaluate(node) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var vNode = arguments.length > 2 ? arguments[2] : undefined;\n      if (!options.attribute || typeof options.attribute !== 'string') {\n        throw new TypeError('attr-non-space-content requires options.attribute to be a string');\n      }\n      if (!vNode.hasAttr(options.attribute)) {\n        this.data({\n          messageKey: 'noAttr'\n        });\n        return false;\n      }\n      var attribute = vNode.attr(options.attribute);\n      var attributeIsEmpty = !sanitize_default(attribute);\n      if (attributeIsEmpty) {\n        this.data({\n          messageKey: 'emptyAttr'\n        });\n        return false;\n      }\n      return true;\n    }\n    var attr_non_space_content_evaluate_default = attrNonSpaceContentEvaluate;\n    function pageHasElmAfter(results) {\n      var elmUsedAnywhere = results.some(function(frameResult) {\n        return frameResult.result === true;\n      });\n      if (elmUsedAnywhere) {\n        results.forEach(function(result) {\n          result.result = true;\n        });\n      }\n      return results;\n    }\n    var has_descendant_after_default = pageHasElmAfter;\n    function hasDescendant(node, options, virtualNode) {\n      if (!options || !options.selector || typeof options.selector !== 'string') {\n        throw new TypeError('has-descendant requires options.selector to be a string');\n      }\n      var matchingElms = query_selector_all_filter_default(virtualNode, options.selector, function(vNode) {\n        return is_visible_default(vNode.actualNode, true);\n      });\n      this.relatedNodes(matchingElms.map(function(vNode) {\n        return vNode.actualNode;\n      }));\n      return matchingElms.length > 0;\n    }\n    var has_descendant_evaluate_default = hasDescendant;\n    function hasTextContentEvaluate(node, options, virtualNode) {\n      try {\n        return sanitize_default(subtree_text_default(virtualNode)) !== '';\n      } catch (e) {\n        return void 0;\n      }\n    }\n    var has_text_content_evaluate_default = hasTextContentEvaluate;\n    function matchesDefinitionEvaluate(_, options, virtualNode) {\n      return matches_default3(virtualNode, options.matcher);\n    }\n    var matches_definition_evaluate_default = matchesDefinitionEvaluate;\n    function pageNoDuplicateAfter(results) {\n      return results.filter(function(checkResult) {\n        return checkResult.data !== 'ignored';\n      });\n    }\n    var page_no_duplicate_after_default = pageNoDuplicateAfter;\n    function pageNoDuplicateEvaluate(node, options, virtualNode) {\n      if (!options || !options.selector || typeof options.selector !== 'string') {\n        throw new TypeError('page-no-duplicate requires options.selector to be a string');\n      }\n      var key = 'page-no-duplicate;' + options.selector;\n      if (cache_default.get(key)) {\n        this.data('ignored');\n        return;\n      }\n      cache_default.set(key, true);\n      var elms = query_selector_all_filter_default(axe._tree[0], options.selector, function(elm) {\n        return is_visible_default(elm.actualNode);\n      });\n      if (typeof options.nativeScopeFilter === 'string') {\n        elms = elms.filter(function(elm) {\n          return elm.actualNode.hasAttribute('role') || !find_up_virtual_default(elm, options.nativeScopeFilter);\n        });\n      }\n      this.relatedNodes(elms.filter(function(elm) {\n        return elm !== virtualNode;\n      }).map(function(elm) {\n        return elm.actualNode;\n      }));\n      return elms.length <= 1;\n    }\n    var page_no_duplicate_evaluate_default = pageNoDuplicateEvaluate;\n    var joinStr = ' > ';\n    function getFramePath(ancestry, nodePath) {\n      ancestry = ancestry.slice(0, ancestry.length - 1);\n      if (nodePath) {\n        ancestry = ancestry.concat(nodePath);\n      }\n      return ancestry.join(joinStr);\n    }\n    function headingOrderAfter(results) {\n      if (results.length < 2) {\n        return results;\n      }\n      var pageResult = results.find(function(result) {\n        return !result.node._fromFrame;\n      });\n      var headingOrder = pageResult.data.headingOrder.map(function(heading) {\n        return _extends({}, heading, {\n          ancestry: getFramePath(pageResult.node.ancestry, heading.ancestry)\n        });\n      });\n      var nestedResults = results.filter(function(result) {\n        return result.data && result.data.headingOrder && result.node._fromFrame;\n      });\n      nestedResults.forEach(function(result) {\n        result.data.headingOrder = result.data.headingOrder.map(function(heading) {\n          return _extends({}, heading, {\n            ancestry: getFramePath(result.node.ancestry, heading.ancestry)\n          });\n        });\n      });\n      function getFrameIndex(result) {\n        var path = getFramePath(result.node.ancestry);\n        var heading = headingOrder.find(function(heading2) {\n          return heading2.ancestry === path;\n        });\n        return headingOrder.indexOf(heading);\n      }\n      function replaceFrameWithResults(index, result) {\n        var _headingOrder;\n        (_headingOrder = headingOrder).splice.apply(_headingOrder, [ index, 1 ].concat(_toConsumableArray(result.data.headingOrder)));\n      }\n      var replaced = false;\n      while (nestedResults.length) {\n        for (var _i19 = 0; _i19 < nestedResults.length; ) {\n          var nestedResult = nestedResults[_i19];\n          var index = getFrameIndex(nestedResult);\n          if (index !== -1) {\n            replaceFrameWithResults(index, nestedResult);\n            replaced = true;\n            nestedResults.splice(_i19, 1);\n          } else {\n            _i19++;\n          }\n        }\n        if (!replaced) {\n          throw new Error('Unable to find parent iframe of heading-order results');\n        }\n      }\n      results.forEach(function(result) {\n        var path = result.node.ancestry.join(joinStr);\n        var heading = headingOrder.find(function(heading2) {\n          return heading2.ancestry === path;\n        });\n        var index = headingOrder.indexOf(heading);\n        headingOrder.splice(index, 1, {\n          level: headingOrder[index].level,\n          result: result\n        });\n      });\n      headingOrder = headingOrder.filter(function(heading) {\n        return heading.level > 0;\n      });\n      var _loop5 = function _loop5(_i20) {\n        var result = results[_i20];\n        var heading = headingOrder.find(function(heading2) {\n          return heading2.result === result;\n        });\n        var index = headingOrder.indexOf(heading);\n        var currLevel = headingOrder[index].level;\n        var prevLevel = headingOrder[index - 1].level;\n        if (currLevel - prevLevel > 1) {\n          result.result = false;\n        }\n      };\n      for (var _i20 = 1; _i20 < results.length; _i20++) {\n        _loop5(_i20);\n      }\n      return results;\n    }\n    var heading_order_after_default = headingOrderAfter;\n    function getLevel(vNode) {\n      var role = vNode.attr('role');\n      if (role && role.includes('heading')) {\n        var ariaHeadingLevel = vNode.attr('aria-level');\n        var level = parseInt(ariaHeadingLevel, 10);\n        if (isNaN(level) || level < 1 || level > 6) {\n          return 2;\n        }\n        return level;\n      }\n      var headingLevel = vNode.props.nodeName.match(/h(\\d)/);\n      if (headingLevel) {\n        return parseInt(headingLevel[1], 10);\n      }\n      return -1;\n    }\n    function headingOrderEvaluate() {\n      var headingOrder = cache_default.get('headingOrder');\n      if (headingOrder) {\n        return true;\n      }\n      var selector = 'h1, h2, h3, h4, h5, h6, [role=heading], iframe, frame';\n      var vNodes = query_selector_all_filter_default(axe._tree[0], selector, function(vNode) {\n        return is_visible_default(vNode.actualNode, true);\n      });\n      headingOrder = vNodes.map(function(vNode) {\n        return {\n          ancestry: [ _getAncestry(vNode.actualNode) ],\n          level: getLevel(vNode)\n        };\n      });\n      this.data({\n        headingOrder: headingOrder\n      });\n      cache_default.set('headingOrder', vNodes);\n      return true;\n    }\n    var heading_order_evaluate_default = headingOrderEvaluate;\n    function isIdenticalObject(a, b) {\n      if (!a || !b) {\n        return false;\n      }\n      var aProps = Object.getOwnPropertyNames(a);\n      var bProps = Object.getOwnPropertyNames(b);\n      if (aProps.length !== bProps.length) {\n        return false;\n      }\n      var result = aProps.every(function(propName) {\n        var aValue = a[propName];\n        var bValue = b[propName];\n        if (_typeof(aValue) !== _typeof(bValue)) {\n          return false;\n        }\n        if (typeof aValue === 'object' || typeof bValue === 'object') {\n          return isIdenticalObject(aValue, bValue);\n        }\n        return aValue === bValue;\n      });\n      return result;\n    }\n    function identicalLinksSamePurposeAfter(results) {\n      if (results.length < 2) {\n        return results;\n      }\n      var incompleteResults = results.filter(function(_ref47) {\n        var result = _ref47.result;\n        return result !== void 0;\n      });\n      var uniqueResults = [];\n      var nameMap = {};\n      var _loop6 = function _loop6(index) {\n        var _currentResult$relate;\n        var currentResult = incompleteResults[index];\n        var _currentResult$data = currentResult.data, name = _currentResult$data.name, urlProps = _currentResult$data.urlProps;\n        if (nameMap[name]) {\n          return 'continue';\n        }\n        var sameNameResults = incompleteResults.filter(function(_ref48, resultNum) {\n          var data2 = _ref48.data;\n          return data2.name === name && resultNum !== index;\n        });\n        var isSameUrl = sameNameResults.every(function(_ref49) {\n          var data2 = _ref49.data;\n          return isIdenticalObject(data2.urlProps, urlProps);\n        });\n        if (sameNameResults.length && !isSameUrl) {\n          currentResult.result = void 0;\n        }\n        currentResult.relatedNodes = [];\n        (_currentResult$relate = currentResult.relatedNodes).push.apply(_currentResult$relate, _toConsumableArray(sameNameResults.map(function(node) {\n          return node.relatedNodes[0];\n        })));\n        nameMap[name] = sameNameResults;\n        uniqueResults.push(currentResult);\n      };\n      for (var index = 0; index < incompleteResults.length; index++) {\n        var _ret2 = _loop6(index);\n        if (_ret2 === 'continue') {\n          continue;\n        }\n      }\n      return uniqueResults;\n    }\n    var identical_links_same_purpose_after_default = identicalLinksSamePurposeAfter;\n    var commons_exports = {};\n    __export(commons_exports, {\n      aria: function aria() {\n        return aria_exports;\n      },\n      color: function color() {\n        return color_exports;\n      },\n      dom: function dom() {\n        return dom_exports;\n      },\n      forms: function forms() {\n        return forms_exports;\n      },\n      matches: function matches() {\n        return matches_default3;\n      },\n      standards: function standards() {\n        return standards_exports;\n      },\n      table: function table() {\n        return table_exports;\n      },\n      text: function text() {\n        return text_exports;\n      },\n      utils: function utils() {\n        return utils_exports;\n      }\n    });\n    var forms_exports = {};\n    __export(forms_exports, {\n      isAriaCombobox: function isAriaCombobox() {\n        return is_aria_combobox_default;\n      },\n      isAriaListbox: function isAriaListbox() {\n        return is_aria_listbox_default;\n      },\n      isAriaRange: function isAriaRange() {\n        return is_aria_range_default;\n      },\n      isAriaTextbox: function isAriaTextbox() {\n        return is_aria_textbox_default;\n      },\n      isDisabled: function isDisabled() {\n        return is_disabled_default;\n      },\n      isNativeSelect: function isNativeSelect() {\n        return is_native_select_default;\n      },\n      isNativeTextbox: function isNativeTextbox() {\n        return is_native_textbox_default;\n      }\n    });\n    var disabledNodeNames = [ 'fieldset', 'button', 'select', 'input', 'textarea' ];\n    function isDisabled(virtualNode) {\n      var disabledState = virtualNode._isDisabled;\n      if (typeof disabledState === 'boolean') {\n        return disabledState;\n      }\n      var nodeName2 = virtualNode.props.nodeName;\n      var ariaDisabled = virtualNode.attr('aria-disabled');\n      if (disabledNodeNames.includes(nodeName2) && virtualNode.hasAttr('disabled')) {\n        disabledState = true;\n      } else if (ariaDisabled) {\n        disabledState = ariaDisabled.toLowerCase() === 'true';\n      } else if (virtualNode.parent) {\n        disabledState = isDisabled(virtualNode.parent);\n      } else {\n        disabledState = false;\n      }\n      virtualNode._isDisabled = disabledState;\n      return disabledState;\n    }\n    var is_disabled_default = isDisabled;\n    var commons = {\n      aria: aria_exports,\n      color: color_exports,\n      dom: dom_exports,\n      forms: forms_exports,\n      matches: matches_default3,\n      standards: standards_exports,\n      table: table_exports,\n      text: text_exports,\n      utils: utils_exports\n    };\n    function identicalLinksSamePurposeEvaluate(node, options, virtualNode) {\n      var accText = text_exports.accessibleTextVirtual(virtualNode);\n      var name = text_exports.sanitize(text_exports.removeUnicode(accText, {\n        emoji: true,\n        nonBmp: true,\n        punctuations: true\n      })).toLowerCase();\n      if (!name) {\n        return void 0;\n      }\n      var afterData = {\n        name: name,\n        urlProps: dom_exports.urlPropsFromAttribute(node, 'href')\n      };\n      this.data(afterData);\n      this.relatedNodes([ node ]);\n      return true;\n    }\n    var identical_links_same_purpose_evaluate_default = identicalLinksSamePurposeEvaluate;\n    function internalLinkPresentEvaluate(node, options, virtualNode) {\n      var links = query_selector_all_default(virtualNode, 'a[href]');\n      return links.some(function(vLink) {\n        return /^#[^/!]/.test(vLink.actualNode.getAttribute('href'));\n      });\n    }\n    var internal_link_present_evaluate_default = internalLinkPresentEvaluate;\n    function metaRefreshEvaluate(node, options, virtualNode) {\n      var content = virtualNode.attr('content') || '', parsedParams = content.split(/[;,]/);\n      return content === '' || parsedParams[0] === '0';\n    }\n    var meta_refresh_evaluate_default = metaRefreshEvaluate;\n    function normalizeFontWeight(weight) {\n      switch (weight) {\n       case 'lighter':\n        return 100;\n\n       case 'normal':\n        return 400;\n\n       case 'bold':\n        return 700;\n\n       case 'bolder':\n        return 900;\n      }\n      weight = parseInt(weight);\n      return !isNaN(weight) ? weight : 400;\n    }\n    function getTextContainer(elm) {\n      var nextNode = elm;\n      var outerText = elm.textContent.trim();\n      var innerText = outerText;\n      while (innerText === outerText && nextNode !== void 0) {\n        var _i21 = -1;\n        elm = nextNode;\n        if (elm.children.length === 0) {\n          return elm;\n        }\n        do {\n          _i21++;\n          innerText = elm.children[_i21].textContent.trim();\n        } while (innerText === '' && _i21 + 1 < elm.children.length);\n        nextNode = elm.children[_i21];\n      }\n      return elm;\n    }\n    function getStyleValues(node) {\n      var style = window.getComputedStyle(getTextContainer(node));\n      return {\n        fontWeight: normalizeFontWeight(style.getPropertyValue('font-weight')),\n        fontSize: parseInt(style.getPropertyValue('font-size')),\n        isItalic: style.getPropertyValue('font-style') === 'italic'\n      };\n    }\n    function isHeaderStyle(styleA, styleB, margins) {\n      return margins.reduce(function(out, margin) {\n        return out || (!margin.size || styleA.fontSize / margin.size > styleB.fontSize) && (!margin.weight || styleA.fontWeight - margin.weight > styleB.fontWeight) && (!margin.italic || styleA.isItalic && !styleB.isItalic);\n      }, false);\n    }\n    function pAsHeadingEvaluate(node, options, virtualNode) {\n      var siblings = Array.from(node.parentNode.children);\n      var currentIndex = siblings.indexOf(node);\n      options = options || {};\n      var margins = options.margins || [];\n      var nextSibling = siblings.slice(currentIndex + 1).find(function(elm) {\n        return elm.nodeName.toUpperCase() === 'P';\n      });\n      var prevSibling = siblings.slice(0, currentIndex).reverse().find(function(elm) {\n        return elm.nodeName.toUpperCase() === 'P';\n      });\n      var currStyle = getStyleValues(node);\n      var nextStyle = nextSibling ? getStyleValues(nextSibling) : null;\n      var prevStyle = prevSibling ? getStyleValues(prevSibling) : null;\n      if (!nextStyle || !isHeaderStyle(currStyle, nextStyle, margins)) {\n        return true;\n      }\n      var blockquote = find_up_virtual_default(virtualNode, 'blockquote');\n      if (blockquote && blockquote.nodeName.toUpperCase() === 'BLOCKQUOTE') {\n        return void 0;\n      }\n      if (prevStyle && !isHeaderStyle(currStyle, prevStyle, margins)) {\n        return void 0;\n      }\n      return false;\n    }\n    var p_as_heading_evaluate_default = pAsHeadingEvaluate;\n    var landmarkRoles = get_aria_roles_by_type_default('landmark');\n    var implicitAriaLiveRoles = [ 'alert', 'log', 'status' ];\n    function isRegion(virtualNode, options) {\n      var node = virtualNode.actualNode;\n      var role = get_role_default(virtualNode);\n      var ariaLive = (node.getAttribute('aria-live') || '').toLowerCase().trim();\n      if ([ 'assertive', 'polite' ].includes(ariaLive) || implicitAriaLiveRoles.includes(role)) {\n        return true;\n      }\n      if (landmarkRoles.includes(role)) {\n        return true;\n      }\n      if (options.regionMatcher && matches_default3(virtualNode, options.regionMatcher)) {\n        return true;\n      }\n      return false;\n    }\n    function findRegionlessElms(virtualNode, options) {\n      var node = virtualNode.actualNode;\n      if (isRegion(virtualNode, options) || is_skip_link_default(virtualNode.actualNode) && get_element_by_reference_default(virtualNode.actualNode, 'href') || !is_visible_default(node, true)) {\n        var vNode = virtualNode;\n        while (vNode) {\n          vNode._hasRegionDescendant = true;\n          vNode = vNode.parent;\n        }\n        return [];\n      } else if (node !== document.body && has_content_default(node, true)) {\n        return [ virtualNode ];\n      } else {\n        return virtualNode.children.filter(function(_ref50) {\n          var actualNode = _ref50.actualNode;\n          return actualNode.nodeType === 1;\n        }).map(function(vNode) {\n          return findRegionlessElms(vNode, options);\n        }).reduce(function(a, b) {\n          return a.concat(b);\n        }, []);\n      }\n    }\n    function regionEvaluate(node, options, virtualNode) {\n      var regionlessNodes = cache_default.get('regionlessNodes');\n      if (regionlessNodes) {\n        return !regionlessNodes.includes(virtualNode);\n      }\n      var tree = axe._tree;\n      regionlessNodes = findRegionlessElms(tree[0], options).map(function(vNode) {\n        while (vNode.parent && !vNode.parent._hasRegionDescendant && vNode.parent.actualNode !== document.body) {\n          vNode = vNode.parent;\n        }\n        return vNode;\n      }).filter(function(vNode, index, array) {\n        return array.indexOf(vNode) === index;\n      });\n      cache_default.set('regionlessNodes', regionlessNodes);\n      return !regionlessNodes.includes(virtualNode);\n    }\n    var region_evaluate_default = regionEvaluate;\n    function skipLinkEvaluate(node) {\n      var target = get_element_by_reference_default(node, 'href');\n      if (target) {\n        return is_visible_default(target, true) || void 0;\n      }\n      return false;\n    }\n    var skip_link_evaluate_default = skipLinkEvaluate;\n    function uniqueFrameTitleAfter(results) {\n      var titles = {};\n      results.forEach(function(r) {\n        titles[r.data] = titles[r.data] !== void 0 ? ++titles[r.data] : 0;\n      });\n      results.forEach(function(r) {\n        r.result = !!titles[r.data];\n      });\n      return results;\n    }\n    var unique_frame_title_after_default = uniqueFrameTitleAfter;\n    function uniqueFrameTitleEvaluate(node, options, vNode) {\n      var title = sanitize_default(vNode.attr('title')).toLowerCase();\n      this.data(title);\n      return true;\n    }\n    var unique_frame_title_evaluate_default = uniqueFrameTitleEvaluate;\n    function ariaLabelEvaluate(node, options, virtualNode) {\n      return !!sanitize_default(arialabel_text_default(virtualNode));\n    }\n    var aria_label_evaluate_default = ariaLabelEvaluate;\n    function ariaLabelledbyEvaluate(node, options, virtualNode) {\n      try {\n        return !!sanitize_default(arialabelledby_text_default(virtualNode));\n      } catch (e) {\n        return void 0;\n      }\n    }\n    var aria_labelledby_evaluate_default = ariaLabelledbyEvaluate;\n    function avoidInlineSpacingEvaluate(node, options) {\n      var overriddenProperties = options.cssProperties.filter(function(property) {\n        if (node.style.getPropertyPriority(property) === 'important') {\n          return property;\n        }\n      });\n      if (overriddenProperties.length > 0) {\n        this.data(overriddenProperties);\n        return false;\n      }\n      return true;\n    }\n    var avoid_inline_spacing_evaluate_default = avoidInlineSpacingEvaluate;\n    function docHasTitleEvaluate() {\n      var title = document.title;\n      return !!sanitize_default(title);\n    }\n    var doc_has_title_evaluate_default = docHasTitleEvaluate;\n    function existsEvaluate() {\n      return void 0;\n    }\n    var exists_evaluate_default = existsEvaluate;\n    function hasAltEvaluate(node, options, virtualNode) {\n      var nodeName2 = virtualNode.props.nodeName;\n      if (![ 'img', 'input', 'area' ].includes(nodeName2)) {\n        return false;\n      }\n      return virtualNode.hasAttr('alt');\n    }\n    var has_alt_evaluate_default = hasAltEvaluate;\n    function isOnScreenEvaluate(node) {\n      return is_visible_default(node, false) && !is_offscreen_default(node);\n    }\n    var is_on_screen_evaluate_default = isOnScreenEvaluate;\n    function nonEmptyIfPresentEvaluate(node, options, virtualNode) {\n      var nodeName2 = virtualNode.props.nodeName;\n      var type = (virtualNode.attr('type') || '').toLowerCase();\n      var label5 = virtualNode.attr('value');\n      if (label5) {\n        this.data({\n          messageKey: 'has-label'\n        });\n      }\n      if (nodeName2 === 'input' && [ 'submit', 'reset' ].includes(type)) {\n        return label5 === null;\n      }\n      return false;\n    }\n    var non_empty_if_present_evaluate_default = nonEmptyIfPresentEvaluate;\n    function presentationalRoleEvaluate(node, options, virtualNode) {\n      var role = get_role_default(virtualNode);\n      var explicitRole2 = get_explicit_role_default(virtualNode);\n      if ([ 'presentation', 'none' ].includes(role)) {\n        this.data({\n          role: role\n        });\n        return true;\n      }\n      if (![ 'presentation', 'none' ].includes(explicitRole2)) {\n        return false;\n      }\n      var hasGlobalAria = get_global_aria_attrs_default().some(function(attr) {\n        return virtualNode.hasAttr(attr);\n      });\n      var focusable = is_focusable_default(virtualNode);\n      var messageKey;\n      if (hasGlobalAria && !focusable) {\n        messageKey = 'globalAria';\n      } else if (!hasGlobalAria && focusable) {\n        messageKey = 'focusable';\n      } else {\n        messageKey = 'both';\n      }\n      this.data({\n        messageKey: messageKey,\n        role: role\n      });\n      return false;\n    }\n    var presentational_role_evaluate_default = presentationalRoleEvaluate;\n    function svgNonEmptyTitleEvaluate(node, options, virtualNode) {\n      if (!virtualNode.children) {\n        return void 0;\n      }\n      var titleNode = virtualNode.children.find(function(_ref51) {\n        var props = _ref51.props;\n        return props.nodeName === 'title';\n      });\n      if (!titleNode) {\n        this.data({\n          messageKey: 'noTitle'\n        });\n        return false;\n      }\n      try {\n        if (visible_virtual_default(titleNode) === '') {\n          this.data({\n            messageKey: 'emptyTitle'\n          });\n          return false;\n        }\n      } catch (e) {\n        return void 0;\n      }\n      return true;\n    }\n    var svg_non_empty_title_evaluate_default = svgNonEmptyTitleEvaluate;\n    function cssOrientationLockEvaluate(node, options, virtualNode, context3) {\n      var _ref52 = context3 || {}, _ref52$cssom = _ref52.cssom, cssom = _ref52$cssom === void 0 ? void 0 : _ref52$cssom;\n      var _ref53 = options || {}, _ref53$degreeThreshol = _ref53.degreeThreshold, degreeThreshold = _ref53$degreeThreshol === void 0 ? 0 : _ref53$degreeThreshol;\n      if (!cssom || !cssom.length) {\n        return void 0;\n      }\n      var isLocked = false;\n      var relatedElements = [];\n      var rulesGroupByDocumentFragment = groupCssomByDocument(cssom);\n      var _loop7 = function _loop7() {\n        var key = _Object$keys2[_i22];\n        var _rulesGroupByDocument = rulesGroupByDocumentFragment[key], root = _rulesGroupByDocument.root, rules = _rulesGroupByDocument.rules;\n        var orientationRules = rules.filter(isMediaRuleWithOrientation);\n        if (!orientationRules.length) {\n          return 'continue';\n        }\n        orientationRules.forEach(function(_ref54) {\n          var cssRules = _ref54.cssRules;\n          Array.from(cssRules).forEach(function(cssRule) {\n            var locked = getIsOrientationLocked(cssRule);\n            if (locked && cssRule.selectorText.toUpperCase() !== 'HTML') {\n              var elms = Array.from(root.querySelectorAll(cssRule.selectorText)) || [];\n              relatedElements = relatedElements.concat(elms);\n            }\n            isLocked = isLocked || locked;\n          });\n        });\n      };\n      for (var _i22 = 0, _Object$keys2 = Object.keys(rulesGroupByDocumentFragment); _i22 < _Object$keys2.length; _i22++) {\n        var _ret3 = _loop7();\n        if (_ret3 === 'continue') {\n          continue;\n        }\n      }\n      if (!isLocked) {\n        return true;\n      }\n      if (relatedElements.length) {\n        this.relatedNodes(relatedElements);\n      }\n      return false;\n      function groupCssomByDocument(cssObjectModel) {\n        return cssObjectModel.reduce(function(out, _ref55) {\n          var sheet = _ref55.sheet, root = _ref55.root, shadowId = _ref55.shadowId;\n          var key = shadowId ? shadowId : 'topDocument';\n          if (!out[key]) {\n            out[key] = {\n              root: root,\n              rules: []\n            };\n          }\n          if (!sheet || !sheet.cssRules) {\n            return out;\n          }\n          var rules = Array.from(sheet.cssRules);\n          out[key].rules = out[key].rules.concat(rules);\n          return out;\n        }, {});\n      }\n      function isMediaRuleWithOrientation(_ref56) {\n        var type = _ref56.type, cssText = _ref56.cssText;\n        if (type !== 4) {\n          return false;\n        }\n        return /orientation:\\s*landscape/i.test(cssText) || /orientation:\\s*portrait/i.test(cssText);\n      }\n      function getIsOrientationLocked(_ref57) {\n        var selectorText = _ref57.selectorText, style = _ref57.style;\n        if (!selectorText || style.length <= 0) {\n          return false;\n        }\n        var transformStyle = style.transform || style.webkitTransform || style.msTransform || false;\n        if (!transformStyle) {\n          return false;\n        }\n        var matches14 = transformStyle.match(/(rotate|rotateZ|rotate3d|matrix|matrix3d)\\(([^)]+)\\)(?!.*(rotate|rotateZ|rotate3d|matrix|matrix3d))/);\n        if (!matches14) {\n          return false;\n        }\n        var _matches = _slicedToArray(matches14, 3), transformFn = _matches[1], transformFnValue = _matches[2];\n        var degrees = getRotationInDegrees(transformFn, transformFnValue);\n        if (!degrees) {\n          return false;\n        }\n        degrees = Math.abs(degrees);\n        if (Math.abs(degrees - 180) % 180 <= degreeThreshold) {\n          return false;\n        }\n        return Math.abs(degrees - 90) % 90 <= degreeThreshold;\n      }\n      function getRotationInDegrees(transformFunction, transformFnValue) {\n        switch (transformFunction) {\n         case 'rotate':\n         case 'rotateZ':\n          return getAngleInDegrees(transformFnValue);\n\n         case 'rotate3d':\n          var _transformFnValue$spl = transformFnValue.split(',').map(function(value) {\n            return value.trim();\n          }), _transformFnValue$spl2 = _slicedToArray(_transformFnValue$spl, 4), z = _transformFnValue$spl2[2], angleWithUnit = _transformFnValue$spl2[3];\n          if (parseInt(z) === 0) {\n            return;\n          }\n          return getAngleInDegrees(angleWithUnit);\n\n         case 'matrix':\n         case 'matrix3d':\n          return getAngleInDegreesFromMatrixTransform(transformFnValue);\n\n         default:\n          return;\n        }\n      }\n      function getAngleInDegrees(angleWithUnit) {\n        var _ref58 = angleWithUnit.match(/(deg|grad|rad|turn)/) || [], _ref59 = _slicedToArray(_ref58, 1), unit = _ref59[0];\n        if (!unit) {\n          return;\n        }\n        var angle = parseFloat(angleWithUnit.replace(unit, ''));\n        switch (unit) {\n         case 'rad':\n          return convertRadToDeg(angle);\n\n         case 'grad':\n          return convertGradToDeg(angle);\n\n         case 'turn':\n          return convertTurnToDeg(angle);\n\n         case 'deg':\n         default:\n          return parseInt(angle);\n        }\n      }\n      function getAngleInDegreesFromMatrixTransform(transformFnValue) {\n        var values = transformFnValue.split(',');\n        if (values.length <= 6) {\n          var _values = _slicedToArray(values, 2), a = _values[0], b2 = _values[1];\n          var radians = Math.atan2(parseFloat(b2), parseFloat(a));\n          return convertRadToDeg(radians);\n        }\n        var sinB = parseFloat(values[8]);\n        var b = Math.asin(sinB);\n        var cosB = Math.cos(b);\n        var rotateZRadians = Math.acos(parseFloat(values[0]) / cosB);\n        return convertRadToDeg(rotateZRadians);\n      }\n      function convertRadToDeg(radians) {\n        return Math.round(radians * (180 / Math.PI));\n      }\n      function convertGradToDeg(grad) {\n        grad = grad % 400;\n        if (grad < 0) {\n          grad += 400;\n        }\n        return Math.round(grad / 400 * 360);\n      }\n      function convertTurnToDeg(turn) {\n        return Math.round(360 / (1 / turn));\n      }\n    }\n    var css_orientation_lock_evaluate_default = cssOrientationLockEvaluate;\n    function metaViewportScaleEvaluate(node, options, virtualNode) {\n      var _ref60 = options || {}, _ref60$scaleMinimum = _ref60.scaleMinimum, scaleMinimum = _ref60$scaleMinimum === void 0 ? 2 : _ref60$scaleMinimum, _ref60$lowerBound = _ref60.lowerBound, lowerBound = _ref60$lowerBound === void 0 ? false : _ref60$lowerBound;\n      var content = virtualNode.attr('content') || '';\n      if (!content) {\n        return true;\n      }\n      var result = content.split(/[;,]/).reduce(function(out, item) {\n        var contentValue = item.trim();\n        if (!contentValue) {\n          return out;\n        }\n        var _contentValue$split = contentValue.split('='), _contentValue$split2 = _slicedToArray(_contentValue$split, 2), key = _contentValue$split2[0], value = _contentValue$split2[1];\n        if (!key || !value) {\n          return out;\n        }\n        var curatedKey = key.toLowerCase().trim();\n        var curatedValue = value.toLowerCase().trim();\n        if (curatedKey === 'maximum-scale' && curatedValue === 'yes') {\n          curatedValue = 1;\n        }\n        if (curatedKey === 'maximum-scale' && parseFloat(curatedValue) < 0) {\n          return out;\n        }\n        out[curatedKey] = curatedValue;\n        return out;\n      }, {});\n      if (lowerBound && result['maximum-scale'] && parseFloat(result['maximum-scale']) < lowerBound) {\n        return true;\n      }\n      if (!lowerBound && result['user-scalable'] === 'no') {\n        this.data('user-scalable=no');\n        return false;\n      }\n      if (result['maximum-scale'] && parseFloat(result['maximum-scale']) < scaleMinimum) {\n        this.data('maximum-scale');\n        return false;\n      }\n      return true;\n    }\n    var meta_viewport_scale_evaluate_default = metaViewportScaleEvaluate;\n    function duplicateIdAfter(results) {\n      var uniqueIds = [];\n      return results.filter(function(r) {\n        if (uniqueIds.indexOf(r.data) === -1) {\n          uniqueIds.push(r.data);\n          return true;\n        }\n        return false;\n      });\n    }\n    var duplicate_id_after_default = duplicateIdAfter;\n    function duplicateIdEvaluate(node) {\n      var id = node.getAttribute('id').trim();\n      if (!id) {\n        return true;\n      }\n      var root = get_root_node_default2(node);\n      var matchingNodes = Array.from(root.querySelectorAll('[id=\"'.concat(escape_selector_default(id), '\"]'))).filter(function(foundNode) {\n        return foundNode !== node;\n      });\n      if (matchingNodes.length) {\n        this.relatedNodes(matchingNodes);\n      }\n      this.data(id);\n      return matchingNodes.length === 0;\n    }\n    var duplicate_id_evaluate_default = duplicateIdEvaluate;\n    function accesskeysAfter(results) {\n      var seen = {};\n      return results.filter(function(r) {\n        if (!r.data) {\n          return false;\n        }\n        var key = r.data.toUpperCase();\n        if (!seen[key]) {\n          seen[key] = r;\n          r.relatedNodes = [];\n          return true;\n        }\n        seen[key].relatedNodes.push(r.relatedNodes[0]);\n        return false;\n      }).map(function(r) {\n        r.result = !!r.relatedNodes.length;\n        return r;\n      });\n    }\n    var accesskeys_after_default = accesskeysAfter;\n    function accesskeysEvaluate(node) {\n      if (is_visible_default(node, false)) {\n        this.data(node.getAttribute('accesskey'));\n        this.relatedNodes([ node ]);\n      }\n      return true;\n    }\n    var accesskeys_evaluate_default = accesskeysEvaluate;\n    function focusableContentEvaluate(node, options, virtualNode) {\n      var tabbableElements = virtualNode.tabbableElements;\n      if (!tabbableElements) {\n        return false;\n      }\n      var tabbableContentElements = tabbableElements.filter(function(el) {\n        return el !== virtualNode;\n      });\n      return tabbableContentElements.length > 0;\n    }\n    var focusable_content_evaluate_default = focusableContentEvaluate;\n    function focusableDisabledEvaluate(node, options, virtualNode) {\n      var elementsThatCanBeDisabled = [ 'BUTTON', 'FIELDSET', 'INPUT', 'SELECT', 'TEXTAREA' ];\n      var tabbableElements = virtualNode.tabbableElements;\n      if (!tabbableElements || !tabbableElements.length) {\n        return true;\n      }\n      var relatedNodes = tabbableElements.reduce(function(out, _ref61) {\n        var el = _ref61.actualNode;\n        var nodeName2 = el.nodeName.toUpperCase();\n        if (elementsThatCanBeDisabled.includes(nodeName2)) {\n          out.push(el);\n        }\n        return out;\n      }, []);\n      this.relatedNodes(relatedNodes);\n      if (relatedNodes.length && is_modal_open_default()) {\n        return true;\n      }\n      return relatedNodes.length === 0;\n    }\n    var focusable_disabled_evaluate_default = focusableDisabledEvaluate;\n    function focusableElementEvaluate(node, options, virtualNode) {\n      if (virtualNode.hasAttr('contenteditable') && isContenteditable(virtualNode)) {\n        return true;\n      }\n      var isFocusable2 = virtualNode.isFocusable;\n      var tabIndex = parseInt(virtualNode.attr('tabindex'), 10);\n      tabIndex = !isNaN(tabIndex) ? tabIndex : null;\n      return tabIndex ? isFocusable2 && tabIndex >= 0 : isFocusable2;\n      function isContenteditable(vNode) {\n        var contenteditable = vNode.attr('contenteditable');\n        if (contenteditable === 'true' || contenteditable === '') {\n          return true;\n        }\n        if (contenteditable === 'false') {\n          return false;\n        }\n        var ancestor = closest_default(virtualNode.parent, '[contenteditable]');\n        if (!ancestor) {\n          return false;\n        }\n        return isContenteditable(ancestor);\n      }\n    }\n    var focusable_element_evaluate_default = focusableElementEvaluate;\n    function focusableModalOpenEvaluate(node, options, virtualNode) {\n      var tabbableElements = virtualNode.tabbableElements.map(function(_ref62) {\n        var actualNode = _ref62.actualNode;\n        return actualNode;\n      });\n      if (!tabbableElements || !tabbableElements.length) {\n        return true;\n      }\n      if (is_modal_open_default()) {\n        this.relatedNodes(tabbableElements);\n        return void 0;\n      }\n      return true;\n    }\n    var focusable_modal_open_evaluate_default = focusableModalOpenEvaluate;\n    function focusableNoNameEvaluate(node, options, virtualNode) {\n      var tabIndex = virtualNode.attr('tabindex');\n      var inFocusOrder = is_focusable_default(virtualNode) && tabIndex > -1;\n      if (!inFocusOrder) {\n        return false;\n      }\n      try {\n        return !accessible_text_virtual_default(virtualNode);\n      } catch (e) {\n        return void 0;\n      }\n    }\n    var focusable_no_name_evaluate_default = focusableNoNameEvaluate;\n    function focusableNotTabbableEvaluate(node, options, virtualNode) {\n      var elementsThatCanBeDisabled = [ 'BUTTON', 'FIELDSET', 'INPUT', 'SELECT', 'TEXTAREA' ];\n      var tabbableElements = virtualNode.tabbableElements;\n      if (!tabbableElements || !tabbableElements.length) {\n        return true;\n      }\n      var relatedNodes = tabbableElements.reduce(function(out, _ref63) {\n        var el = _ref63.actualNode;\n        var nodeName2 = el.nodeName.toUpperCase();\n        if (!elementsThatCanBeDisabled.includes(nodeName2)) {\n          out.push(el);\n        }\n        return out;\n      }, []);\n      this.relatedNodes(relatedNodes);\n      if (relatedNodes.length > 0 && is_modal_open_default()) {\n        return true;\n      }\n      return relatedNodes.length === 0;\n    }\n    var focusable_not_tabbable_evaluate_default = focusableNotTabbableEvaluate;\n    function landmarkIsTopLevelEvaluate(node) {\n      var landmarks = get_aria_roles_by_type_default('landmark');\n      var parent = get_composed_parent_default(node);\n      var nodeRole = get_role_default(node);\n      this.data({\n        role: nodeRole\n      });\n      while (parent) {\n        var role = parent.getAttribute('role');\n        if (!role && parent.nodeName.toUpperCase() !== 'FORM') {\n          role = implicit_role_default(parent);\n        }\n        if (role && landmarks.includes(role) && !(role === 'main' && nodeRole === 'complementary')) {\n          return false;\n        }\n        parent = get_composed_parent_default(parent);\n      }\n      return true;\n    }\n    var landmark_is_top_level_evaluate_default = landmarkIsTopLevelEvaluate;\n    function focusableDescendants(vNode) {\n      if (is_focusable_default(vNode)) {\n        return true;\n      }\n      if (!vNode.children) {\n        if (vNode.props.nodeType === 1) {\n          throw new Error('Cannot determine children');\n        }\n        return false;\n      }\n      return vNode.children.some(function(child) {\n        return focusableDescendants(child);\n      });\n    }\n    function noFocusbleContentEvaluate(node, options, virtualNode) {\n      if (!virtualNode.children) {\n        return void 0;\n      }\n      try {\n        return !virtualNode.children.some(function(child) {\n          return focusableDescendants(child);\n        });\n      } catch (e) {\n        return void 0;\n      }\n    }\n    var no_focusable_content_evaluate_default = noFocusbleContentEvaluate;\n    function tabindexEvaluate(node, options, virtualNode) {\n      var tabIndex = parseInt(virtualNode.attr('tabindex'), 10);\n      return isNaN(tabIndex) ? true : tabIndex <= 0;\n    }\n    var tabindex_evaluate_default = tabindexEvaluate;\n    function altSpaceValueEvaluate(node, options, virtualNode) {\n      var alt = virtualNode.attr('alt');\n      var isOnlySpace = /^\\s+$/;\n      return typeof alt === 'string' && isOnlySpace.test(alt);\n    }\n    var alt_space_value_evaluate_default = altSpaceValueEvaluate;\n    function duplicateImgLabelEvaluate(node, options, virtualNode) {\n      if ([ 'none', 'presentation' ].includes(get_role_default(virtualNode))) {\n        return false;\n      }\n      var parentVNode = closest_default(virtualNode, options.parentSelector);\n      if (!parentVNode) {\n        return false;\n      }\n      var visibleText = visible_virtual_default(parentVNode, true).toLowerCase();\n      if (visibleText === '') {\n        return false;\n      }\n      return visibleText === accessible_text_virtual_default(virtualNode).toLowerCase();\n    }\n    var duplicate_img_label_evaluate_default = duplicateImgLabelEvaluate;\n    function explicitEvaluate(node, options, virtualNode) {\n      if (virtualNode.attr('id')) {\n        if (!virtualNode.actualNode) {\n          return void 0;\n        }\n        var root = get_root_node_default2(virtualNode.actualNode);\n        var id = escape_selector_default(virtualNode.attr('id'));\n        var labels = Array.from(root.querySelectorAll('label[for=\"'.concat(id, '\"]')));\n        if (labels.length) {\n          try {\n            return labels.some(function(label5) {\n              if (!is_visible_default(label5)) {\n                return true;\n              } else {\n                return !!accessible_text_default(label5);\n              }\n            });\n          } catch (e) {\n            return void 0;\n          }\n        }\n      }\n      return false;\n    }\n    var explicit_evaluate_default = explicitEvaluate;\n    function helpSameAsLabelEvaluate(node, options, virtualNode) {\n      var labelText2 = label_virtual_default2(virtualNode), check4 = node.getAttribute('title');\n      if (!labelText2) {\n        return false;\n      }\n      if (!check4) {\n        check4 = '';\n        if (node.getAttribute('aria-describedby')) {\n          var ref = idrefs_default(node, 'aria-describedby');\n          check4 = ref.map(function(thing) {\n            return thing ? accessible_text_default(thing) : '';\n          }).join('');\n        }\n      }\n      return sanitize_default(check4) === sanitize_default(labelText2);\n    }\n    var help_same_as_label_evaluate_default = helpSameAsLabelEvaluate;\n    function hiddenExplicitLabelEvaluate(node, options, virtualNode) {\n      if (virtualNode.hasAttr('id')) {\n        if (!virtualNode.actualNode) {\n          return void 0;\n        }\n        var root = get_root_node_default2(node);\n        var id = escape_selector_default(node.getAttribute('id'));\n        var label5 = root.querySelector('label[for=\"'.concat(id, '\"]'));\n        if (label5 && !is_visible_default(label5, true)) {\n          var name;\n          try {\n            name = accessible_text_virtual_default(virtualNode).trim();\n          } catch (e) {\n            return void 0;\n          }\n          var isNameEmpty = name === '';\n          return isNameEmpty;\n        }\n      }\n      return false;\n    }\n    var hidden_explicit_label_evaluate_default = hiddenExplicitLabelEvaluate;\n    function implicitEvaluate(node, options, virtualNode) {\n      try {\n        var label5 = closest_default(virtualNode, 'label');\n        if (label5) {\n          return !!accessible_text_virtual_default(label5, {\n            inControlContext: true\n          });\n        }\n        return false;\n      } catch (e) {\n        return void 0;\n      }\n    }\n    var implicit_evaluate_default = implicitEvaluate;\n    function isStringContained(compare, compareWith) {\n      var curatedCompareWith = curateString(compareWith);\n      var curatedCompare = curateString(compare);\n      if (!curatedCompareWith || !curatedCompare) {\n        return false;\n      }\n      return curatedCompareWith.includes(curatedCompare);\n    }\n    function curateString(str) {\n      var noUnicodeStr = remove_unicode_default(str, {\n        emoji: true,\n        nonBmp: true,\n        punctuations: true\n      });\n      return sanitize_default(noUnicodeStr);\n    }\n    function labelContentNameMismatchEvaluate(node, options, virtualNode) {\n      var _ref64 = options || {}, pixelThreshold = _ref64.pixelThreshold, occuranceThreshold = _ref64.occuranceThreshold;\n      var accText = accessible_text_default(node).toLowerCase();\n      if (is_human_interpretable_default(accText) < 1) {\n        return void 0;\n      }\n      var textVNodes = visible_text_nodes_default(virtualNode);\n      var nonLigatureText = textVNodes.filter(function(textVNode) {\n        return !is_icon_ligature_default(textVNode, pixelThreshold, occuranceThreshold);\n      }).map(function(textVNode) {\n        return textVNode.actualNode.nodeValue;\n      }).join('');\n      var visibleText = sanitize_default(nonLigatureText).toLowerCase();\n      if (!visibleText) {\n        return true;\n      }\n      if (is_human_interpretable_default(visibleText) < 1) {\n        if (isStringContained(visibleText, accText)) {\n          return true;\n        }\n        return void 0;\n      }\n      return isStringContained(visibleText, accText);\n    }\n    var label_content_name_mismatch_evaluate_default = labelContentNameMismatchEvaluate;\n    function multipleLabelEvaluate(node) {\n      var id = escape_selector_default(node.getAttribute('id'));\n      var parent = node.parentNode;\n      var root = get_root_node_default2(node);\n      root = root.documentElement || root;\n      var labels = Array.from(root.querySelectorAll('label[for=\"'.concat(id, '\"]')));\n      if (labels.length) {\n        labels = labels.filter(function(label5) {\n          return is_visible_default(label5);\n        });\n      }\n      while (parent) {\n        if (parent.nodeName.toUpperCase() === 'LABEL' && labels.indexOf(parent) === -1) {\n          labels.push(parent);\n        }\n        parent = parent.parentNode;\n      }\n      this.relatedNodes(labels);\n      if (labels.length > 1) {\n        var ATVisibleLabels = labels.filter(function(label5) {\n          return is_visible_default(label5, true);\n        });\n        if (ATVisibleLabels.length > 1) {\n          return void 0;\n        }\n        var labelledby = idrefs_default(node, 'aria-labelledby');\n        return !labelledby.includes(ATVisibleLabels[0]) ? void 0 : false;\n      }\n      return false;\n    }\n    var multiple_label_evaluate_default = multipleLabelEvaluate;\n    function titleOnlyEvaluate(node, options, virtualNode) {\n      var labelText2 = label_virtual_default2(virtualNode);\n      var title = title_text_default(virtualNode);\n      var ariaDescribedBy = virtualNode.attr('aria-describedby');\n      return !labelText2 && !!(title || ariaDescribedBy);\n    }\n    var title_only_evaluate_default = titleOnlyEvaluate;\n    function landmarkIsUniqueAfter(results) {\n      var uniqueLandmarks = [];\n      return results.filter(function(currentResult) {\n        var findMatch = function findMatch(someResult) {\n          return currentResult.data.role === someResult.data.role && currentResult.data.accessibleText === someResult.data.accessibleText;\n        };\n        var matchedResult = uniqueLandmarks.find(findMatch);\n        if (matchedResult) {\n          matchedResult.result = false;\n          matchedResult.relatedNodes.push(currentResult.relatedNodes[0]);\n          return false;\n        }\n        uniqueLandmarks.push(currentResult);\n        currentResult.relatedNodes = [];\n        return true;\n      });\n    }\n    var landmark_is_unique_after_default = landmarkIsUniqueAfter;\n    function landmarkIsUniqueEvaluate(node, options, virtualNode) {\n      var role = get_role_default(node);\n      var accessibleText2 = accessible_text_virtual_default(virtualNode);\n      accessibleText2 = accessibleText2 ? accessibleText2.toLowerCase() : null;\n      this.data({\n        role: role,\n        accessibleText: accessibleText2\n      });\n      this.relatedNodes([ node ]);\n      return true;\n    }\n    var landmark_is_unique_evaluate_default = landmarkIsUniqueEvaluate;\n    function hasValue(value) {\n      return (value || '').trim() !== '';\n    }\n    function hasLangEvaluate(node, options, virtualNode) {\n      var xhtml2 = typeof document !== 'undefined' ? is_xhtml_default(document) : false;\n      if (options.attributes.includes('xml:lang') && options.attributes.includes('lang') && hasValue(virtualNode.attr('xml:lang')) && !hasValue(virtualNode.attr('lang')) && !xhtml2) {\n        this.data({\n          messageKey: 'noXHTML'\n        });\n        return false;\n      }\n      var hasLang = options.attributes.some(function(name) {\n        return hasValue(virtualNode.attr(name));\n      });\n      if (!hasLang) {\n        this.data({\n          messageKey: 'noLang'\n        });\n        return false;\n      }\n      return true;\n    }\n    var has_lang_evaluate_default = hasLangEvaluate;\n    function validLangEvaluate(node, options, virtualNode) {\n      var invalid = [];\n      options.attributes.forEach(function(langAttr) {\n        var langVal = virtualNode.attr(langAttr);\n        if (typeof langVal !== 'string') {\n          return;\n        }\n        var baselangVal = get_base_lang_default(langVal);\n        var invalidLang = options.value ? !options.value.map(get_base_lang_default).includes(baselangVal) : !valid_langs_default(baselangVal);\n        if (baselangVal !== '' && invalidLang || langVal !== '' && !sanitize_default(langVal)) {\n          invalid.push(langAttr + '=\"' + virtualNode.attr(langAttr) + '\"');\n        }\n      });\n      if (invalid.length) {\n        this.data(invalid);\n        return true;\n      }\n      return false;\n    }\n    var valid_lang_evaluate_default = validLangEvaluate;\n    function xmlLangMismatchEvaluate(node, options, vNode) {\n      var primaryLangValue = get_base_lang_default(vNode.attr('lang'));\n      var primaryXmlLangValue = get_base_lang_default(vNode.attr('xml:lang'));\n      return primaryLangValue === primaryXmlLangValue;\n    }\n    var xml_lang_mismatch_evaluate_default = xmlLangMismatchEvaluate;\n    function dlitemEvaluate(node) {\n      var parent = get_composed_parent_default(node);\n      var parentTagName = parent.nodeName.toUpperCase();\n      var parentRole = get_explicit_role_default(parent);\n      if (parentTagName === 'DIV' && [ 'presentation', 'none', null ].includes(parentRole)) {\n        parent = get_composed_parent_default(parent);\n        parentTagName = parent.nodeName.toUpperCase();\n        parentRole = get_explicit_role_default(parent);\n      }\n      if (parentTagName !== 'DL') {\n        return false;\n      }\n      if (!parentRole || [ 'presentation', 'none', 'list' ].includes(parentRole)) {\n        return true;\n      }\n      return false;\n    }\n    var dlitem_evaluate_default = dlitemEvaluate;\n    function listitemEvaluate(node) {\n      var parent = get_composed_parent_default(node);\n      if (!parent) {\n        return void 0;\n      }\n      var parentTagName = parent.nodeName.toUpperCase();\n      var parentRole = (parent.getAttribute('role') || '').toLowerCase();\n      if ([ 'presentation', 'none', 'list' ].includes(parentRole)) {\n        return true;\n      }\n      if (parentRole && is_valid_role_default(parentRole)) {\n        this.data({\n          messageKey: 'roleNotValid'\n        });\n        return false;\n      }\n      return [ 'UL', 'OL' ].includes(parentTagName);\n    }\n    var listitem_evaluate_default = listitemEvaluate;\n    function onlyDlitemsEvaluate(node, options, virtualNode) {\n      var ALLOWED_ROLES = [ 'definition', 'term', 'list' ];\n      var base = {\n        badNodes: [],\n        hasNonEmptyTextNode: false\n      };\n      var content = virtualNode.children.reduce(function(content2, child) {\n        var actualNode = child.actualNode;\n        if (actualNode.nodeName.toUpperCase() === 'DIV' && get_role_default(actualNode) === null) {\n          return content2.concat(child.children);\n        }\n        return content2.concat(child);\n      }, []);\n      var result = content.reduce(function(out, childNode) {\n        var actualNode = childNode.actualNode;\n        var tagName = actualNode.nodeName.toUpperCase();\n        if (actualNode.nodeType === 1 && is_visible_default(actualNode, true, false)) {\n          var explicitRole2 = get_explicit_role_default(actualNode);\n          if (tagName !== 'DT' && tagName !== 'DD' || explicitRole2) {\n            if (!ALLOWED_ROLES.includes(explicitRole2)) {\n              out.badNodes.push(actualNode);\n            }\n          }\n        } else if (actualNode.nodeType === 3 && actualNode.nodeValue.trim() !== '') {\n          out.hasNonEmptyTextNode = true;\n        }\n        return out;\n      }, base);\n      if (result.badNodes.length) {\n        this.relatedNodes(result.badNodes);\n      }\n      return !!result.badNodes.length || result.hasNonEmptyTextNode;\n    }\n    var only_dlitems_evaluate_default = onlyDlitemsEvaluate;\n    function onlyListitemsEvaluate(node, options, virtualNode) {\n      var hasNonEmptyTextNode = false;\n      var atLeastOneListitem = false;\n      var isEmpty = true;\n      var badNodes = [];\n      var badRoleNodes = [];\n      var badRoles = [];\n      virtualNode.children.forEach(function(vNode) {\n        var actualNode = vNode.actualNode;\n        if (actualNode.nodeType === 3 && actualNode.nodeValue.trim() !== '') {\n          hasNonEmptyTextNode = true;\n          return;\n        }\n        if (actualNode.nodeType !== 1 || !is_visible_default(actualNode, true, false)) {\n          return;\n        }\n        isEmpty = false;\n        var isLi = actualNode.nodeName.toUpperCase() === 'LI';\n        var role = get_role_default(vNode);\n        var isListItemRole = role === 'listitem';\n        if (!isLi && !isListItemRole) {\n          badNodes.push(actualNode);\n        }\n        if (isLi && !isListItemRole) {\n          badRoleNodes.push(actualNode);\n          if (!badRoles.includes(role)) {\n            badRoles.push(role);\n          }\n        }\n        if (isListItemRole) {\n          atLeastOneListitem = true;\n        }\n      });\n      if (hasNonEmptyTextNode || badNodes.length) {\n        this.relatedNodes(badNodes);\n        return true;\n      }\n      if (isEmpty || atLeastOneListitem) {\n        return false;\n      }\n      this.relatedNodes(badRoleNodes);\n      this.data({\n        messageKey: 'roleNotValid',\n        roles: badRoles.join(', ')\n      });\n      return true;\n    }\n    var only_listitems_evaluate_default = onlyListitemsEvaluate;\n    function structuredDlitemsEvaluate(node, options, virtualNode) {\n      var children = virtualNode.children;\n      if (!children || !children.length) {\n        return false;\n      }\n      var hasDt = false, hasDd = false, nodeName2;\n      for (var i = 0; i < children.length; i++) {\n        nodeName2 = children[i].props.nodeName.toUpperCase();\n        if (nodeName2 === 'DT') {\n          hasDt = true;\n        }\n        if (hasDt && nodeName2 === 'DD') {\n          return false;\n        }\n        if (nodeName2 === 'DD') {\n          hasDd = true;\n        }\n      }\n      return hasDt || hasDd;\n    }\n    var structured_dlitems_evaluate_default = structuredDlitemsEvaluate;\n    function captionEvaluate(node, options, virtualNode) {\n      var tracks = query_selector_all_default(virtualNode, 'track');\n      var hasCaptions = tracks.some(function(vNode) {\n        return (vNode.attr('kind') || '').toLowerCase() === 'captions';\n      });\n      return hasCaptions ? false : void 0;\n    }\n    var caption_evaluate_default = captionEvaluate;\n    function frameTestedEvaluate(node, options) {\n      var resolve = this.async();\n      var _Object$assign = Object.assign({\n        isViolation: false,\n        timeout: 500\n      }, options), isViolation = _Object$assign.isViolation, timeout = _Object$assign.timeout;\n      var timer = setTimeout(function() {\n        timer = setTimeout(function() {\n          timer = null;\n          resolve(isViolation ? false : void 0);\n        }, 0);\n      }, timeout);\n      _respondable(node.contentWindow, 'axe.ping', null, void 0, function() {\n        if (timer !== null) {\n          clearTimeout(timer);\n          resolve(true);\n        }\n      });\n    }\n    var frame_tested_evaluate_default = frameTestedEvaluate;\n    function noAutoplayAudioEvaluate(node, options) {\n      if (!node.duration) {\n        console.warn('axe.utils.preloadMedia did not load metadata');\n        return void 0;\n      }\n      var _options$allowedDurat = options.allowedDuration, allowedDuration = _options$allowedDurat === void 0 ? 3 : _options$allowedDurat;\n      var playableDuration = getPlayableDuration(node);\n      if (playableDuration <= allowedDuration && !node.hasAttribute('loop')) {\n        return true;\n      }\n      if (!node.hasAttribute('controls')) {\n        return false;\n      }\n      return true;\n      function getPlayableDuration(elm) {\n        if (!elm.currentSrc) {\n          return 0;\n        }\n        var playbackRange = getPlaybackRange(elm.currentSrc);\n        if (!playbackRange) {\n          return Math.abs(elm.duration - (elm.currentTime || 0));\n        }\n        if (playbackRange.length === 1) {\n          return Math.abs(elm.duration - playbackRange[0]);\n        }\n        return Math.abs(playbackRange[1] - playbackRange[0]);\n      }\n      function getPlaybackRange(src) {\n        var match = src.match(/#t=(.*)/);\n        if (!match) {\n          return;\n        }\n        var _match = _slicedToArray(match, 2), value = _match[1];\n        var ranges = value.split(',');\n        return ranges.map(function(range) {\n          if (/:/.test(range)) {\n            return convertHourMinSecToSeconds(range);\n          }\n          return parseFloat(range);\n        });\n      }\n      function convertHourMinSecToSeconds(hhMmSs) {\n        var parts = hhMmSs.split(':');\n        var secs = 0;\n        var mins = 1;\n        while (parts.length > 0) {\n          secs += mins * parseInt(parts.pop(), 10);\n          mins *= 60;\n        }\n        return parseFloat(secs);\n      }\n    }\n    var no_autoplay_audio_evaluate_default = noAutoplayAudioEvaluate;\n    function ariaAllowedAttrMatches(node, virtualNode) {\n      var aria43 = /^aria-/;\n      var attrs = virtualNode.attrNames;\n      if (attrs.length) {\n        for (var _i23 = 0, l = attrs.length; _i23 < l; _i23++) {\n          if (aria43.test(attrs[_i23])) {\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n    var aria_allowed_attr_matches_default = ariaAllowedAttrMatches;\n    function ariaAllowedRoleMatches(node) {\n      return get_explicit_role_default(node, {\n        dpub: true,\n        fallback: true\n      }) !== null;\n    }\n    var aria_allowed_role_matches_default = ariaAllowedRoleMatches;\n    function ariaHasAttrMatches(node) {\n      var aria43 = /^aria-/;\n      if (node.hasAttributes()) {\n        var attrs = get_node_attributes_default(node);\n        for (var i = 0, l = attrs.length; i < l; i++) {\n          if (aria43.test(attrs[i].name)) {\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n    var aria_has_attr_matches_default = ariaHasAttrMatches;\n    function shouldMatchElement(el) {\n      if (!el) {\n        return true;\n      }\n      if (el.getAttribute('aria-hidden') === 'true') {\n        return false;\n      }\n      return shouldMatchElement(get_composed_parent_default(el));\n    }\n    function ariaHiddenFocusMatches(node) {\n      return shouldMatchElement(get_composed_parent_default(node));\n    }\n    var aria_hidden_focus_matches_default = ariaHiddenFocusMatches;\n    function ariaRequiredChildrenMatches(node, virtualNode) {\n      var role = get_explicit_role_default(virtualNode, {\n        dpub: true\n      });\n      return !!required_owned_default(role);\n    }\n    var aria_required_children_matches_default = ariaRequiredChildrenMatches;\n    function ariaRequiredParentMatches(node, virtualNode) {\n      var role = get_explicit_role_default(virtualNode);\n      return !!required_context_default(role);\n    }\n    var aria_required_parent_matches_default = ariaRequiredParentMatches;\n    function autocompleteMatches(node, virtualNode) {\n      var autocomplete2 = virtualNode.attr('autocomplete');\n      if (!autocomplete2 || sanitize_default(autocomplete2) === '') {\n        return false;\n      }\n      var nodeName2 = virtualNode.props.nodeName;\n      if ([ 'textarea', 'input', 'select' ].includes(nodeName2) === false) {\n        return false;\n      }\n      var excludedInputTypes = [ 'submit', 'reset', 'button', 'hidden' ];\n      if (nodeName2 === 'input' && excludedInputTypes.includes(virtualNode.props.type)) {\n        return false;\n      }\n      var ariaDisabled = virtualNode.attr('aria-disabled') || 'false';\n      if (virtualNode.hasAttr('disabled') || ariaDisabled.toLowerCase() === 'true') {\n        return false;\n      }\n      var role = virtualNode.attr('role');\n      var tabIndex = virtualNode.attr('tabindex');\n      if (tabIndex === '-1' && role) {\n        var roleDef = standards_default.ariaRoles[role];\n        if (roleDef === void 0 || roleDef.type !== 'widget') {\n          return false;\n        }\n      }\n      if (tabIndex === '-1' && virtualNode.actualNode && !is_visible_default(virtualNode.actualNode, false) && !is_visible_default(virtualNode.actualNode, true)) {\n        return false;\n      }\n      return true;\n    }\n    var autocomplete_matches_default = autocompleteMatches;\n    function isInitiatorMatches(node, virtualNode, context3) {\n      return context3.initiator;\n    }\n    var is_initiator_matches_default = isInitiatorMatches;\n    function bypassMatches(node, virtualNode, context3) {\n      if (is_initiator_matches_default(node, virtualNode, context3)) {\n        return !!node.querySelector('a[href]');\n      }\n      return true;\n    }\n    var bypass_matches_default = bypassMatches;\n    function colorContrastMatches(node, virtualNode) {\n      var _virtualNode$props = virtualNode.props, nodeName2 = _virtualNode$props.nodeName, inputType = _virtualNode$props.type;\n      if (nodeName2 === 'option') {\n        return false;\n      }\n      if (nodeName2 === 'select' && !node.options.length) {\n        return false;\n      }\n      var nonTextInput = [ 'hidden', 'range', 'color', 'checkbox', 'radio', 'image' ];\n      if (nodeName2 === 'input' && nonTextInput.includes(inputType)) {\n        return false;\n      }\n      if (is_disabled_default(virtualNode)) {\n        return false;\n      }\n      var formElements = [ 'input', 'select', 'textarea' ];\n      if (formElements.includes(nodeName2)) {\n        var style = window.getComputedStyle(node);\n        var textIndent = parseInt(style.getPropertyValue('text-indent'), 10);\n        if (textIndent) {\n          var rect = node.getBoundingClientRect();\n          rect = {\n            top: rect.top,\n            bottom: rect.bottom,\n            left: rect.left + textIndent,\n            right: rect.right + textIndent\n          };\n          if (!visually_overlaps_default(rect, node)) {\n            return false;\n          }\n        }\n        return true;\n      }\n      var nodeParentLabel = find_up_virtual_default(virtualNode, 'label');\n      if (nodeName2 === 'label' || nodeParentLabel) {\n        var labelNode = nodeParentLabel || node;\n        var labelVirtual3 = nodeParentLabel ? get_node_from_tree_default(nodeParentLabel) : virtualNode;\n        if (labelNode.htmlFor) {\n          var doc = get_root_node_default2(labelNode);\n          var explicitControl = doc.getElementById(labelNode.htmlFor);\n          var explicitControlVirtual = explicitControl && get_node_from_tree_default(explicitControl);\n          if (explicitControlVirtual && is_disabled_default(explicitControlVirtual)) {\n            return false;\n          }\n        }\n        var query = 'input:not([type=\"hidden\"],[type=\"image\"],[type=\"button\"],[type=\"submit\"],[type=\"reset\"]), select, textarea';\n        var implicitControl = query_selector_all_default(labelVirtual3, query)[0];\n        if (implicitControl && is_disabled_default(implicitControl)) {\n          return false;\n        }\n      }\n      var ariaLabelledbyControls = [];\n      var ancestorNode = virtualNode;\n      while (ancestorNode) {\n        if (ancestorNode.props.id) {\n          var virtualControls = get_accessible_refs_default(ancestorNode).filter(function(control) {\n            return token_list_default(control.getAttribute('aria-labelledby') || '').includes(ancestorNode.props.id);\n          }).map(function(control) {\n            return get_node_from_tree_default(control);\n          });\n          ariaLabelledbyControls.push.apply(ariaLabelledbyControls, _toConsumableArray(virtualControls));\n        }\n        ancestorNode = ancestorNode.parent;\n      }\n      if (ariaLabelledbyControls.length > 0 && ariaLabelledbyControls.every(is_disabled_default)) {\n        return false;\n      }\n      var visibleText = visible_virtual_default(virtualNode, false, true);\n      var removeUnicodeOptions = {\n        emoji: true,\n        nonBmp: false,\n        punctuations: true\n      };\n      if (!visibleText || !remove_unicode_default(visibleText, removeUnicodeOptions)) {\n        return false;\n      }\n      var range = document.createRange();\n      var childNodes = virtualNode.children;\n      for (var index = 0; index < childNodes.length; index++) {\n        var child = childNodes[index];\n        if (child.actualNode.nodeType === 3 && sanitize_default(child.actualNode.nodeValue) !== '') {\n          range.selectNodeContents(child.actualNode);\n        }\n      }\n      var rects = range.getClientRects();\n      for (var _index = 0; _index < rects.length; _index++) {\n        if (visually_overlaps_default(rects[_index], node)) {\n          return true;\n        }\n      }\n      return false;\n    }\n    var color_contrast_matches_default = colorContrastMatches;\n    function dataTableLargeMatches(node) {\n      if (is_data_table_default(node)) {\n        var tableArray = to_grid_default(node);\n        return tableArray.length >= 3 && tableArray[0].length >= 3 && tableArray[1].length >= 3 && tableArray[2].length >= 3;\n      }\n      return false;\n    }\n    var data_table_large_matches_default = dataTableLargeMatches;\n    function dataTableMatches(node) {\n      return is_data_table_default(node);\n    }\n    var data_table_matches_default = dataTableMatches;\n    function duplicateIdActiveMatches(node) {\n      var id = node.getAttribute('id').trim();\n      var idSelector = '*[id=\"'.concat(escape_selector_default(id), '\"]');\n      var idMatchingElms = Array.from(get_root_node_default2(node).querySelectorAll(idSelector));\n      return !is_accessible_ref_default(node) && idMatchingElms.some(is_focusable_default);\n    }\n    var duplicate_id_active_matches_default = duplicateIdActiveMatches;\n    function duplicateIdAriaMatches(node) {\n      return is_accessible_ref_default(node);\n    }\n    var duplicate_id_aria_matches_default = duplicateIdAriaMatches;\n    function duplicateIdMiscMatches(node) {\n      var id = node.getAttribute('id').trim();\n      var idSelector = '*[id=\"'.concat(escape_selector_default(id), '\"]');\n      var idMatchingElms = Array.from(get_root_node_default2(node).querySelectorAll(idSelector));\n      return !is_accessible_ref_default(node) && idMatchingElms.every(function(elm) {\n        return !is_focusable_default(elm);\n      });\n    }\n    var duplicate_id_misc_matches_default = duplicateIdMiscMatches;\n    function frameFocusableContentMatches(node, virtualNode, context3) {\n      return !context3.initiator && !context3.focusable && context3.boundingClientRect.width * context3.boundingClientRect.height > 1;\n    }\n    var frame_focusable_content_matches_default = frameFocusableContentMatches;\n    function frameTitleHasTextMatches(node) {\n      var title = node.getAttribute('title');\n      return !!sanitize_default(title);\n    }\n    var frame_title_has_text_matches_default = frameTitleHasTextMatches;\n    function headingMatches(node) {\n      var explicitRoles;\n      if (node.hasAttribute('role')) {\n        explicitRoles = node.getAttribute('role').split(/\\s+/i).filter(axe.commons.aria.isValidRole);\n      }\n      if (explicitRoles && explicitRoles.length > 0) {\n        return explicitRoles.includes('heading');\n      } else {\n        return axe.commons.aria.implicitRole(node) === 'heading';\n      }\n    }\n    var heading_matches_default = headingMatches;\n    function svgNamespaceMatches(node, virtualNode) {\n      try {\n        var nodeName2 = virtualNode.props.nodeName;\n        if (nodeName2 === 'svg') {\n          return true;\n        }\n        return !!closest_default(virtualNode, 'svg');\n      } catch (e) {\n        return false;\n      }\n    }\n    var svg_namespace_matches_default = svgNamespaceMatches;\n    function htmlNamespaceMatches(node, virtualNode) {\n      return !svg_namespace_matches_default(node, virtualNode);\n    }\n    var html_namespace_matches_default = htmlNamespaceMatches;\n    function identicalLinksSamePurposeMatches(node, virtualNode) {\n      var hasAccName = !!accessible_text_virtual_default(virtualNode);\n      if (!hasAccName) {\n        return false;\n      }\n      var role = get_role_default(node);\n      if (role && role !== 'link') {\n        return false;\n      }\n      return true;\n    }\n    var identical_links_same_purpose_matches_default = identicalLinksSamePurposeMatches;\n    function insertedIntoFocusOrderMatches(node) {\n      return inserted_into_focus_order_default(node);\n    }\n    var inserted_into_focus_order_matches_default = insertedIntoFocusOrderMatches;\n    function labelContentNameMismatchMatches(node, virtualNode) {\n      var role = get_role_default(node);\n      if (!role) {\n        return false;\n      }\n      var widgetRoles = get_aria_roles_by_type_default('widget');\n      var isWidgetType = widgetRoles.includes(role);\n      if (!isWidgetType) {\n        return false;\n      }\n      var rolesWithNameFromContents = get_aria_roles_supporting_name_from_content_default();\n      if (!rolesWithNameFromContents.includes(role)) {\n        return false;\n      }\n      if (!sanitize_default(arialabel_text_default(virtualNode)) && !sanitize_default(arialabelledby_text_default(node))) {\n        return false;\n      }\n      if (!sanitize_default(visible_virtual_default(virtualNode))) {\n        return false;\n      }\n      return true;\n    }\n    var label_content_name_mismatch_matches_default = labelContentNameMismatchMatches;\n    function labelMatches(node, virtualNode) {\n      if (virtualNode.props.nodeName !== 'input' || virtualNode.hasAttr('type') === false) {\n        return true;\n      }\n      var type = virtualNode.attr('type').toLowerCase();\n      return [ 'hidden', 'image', 'button', 'submit', 'reset' ].includes(type) === false;\n    }\n    var label_matches_default = labelMatches;\n    function landmarkHasBodyContextMatches(node, virtualNode) {\n      var nativeScopeFilter = 'article, aside, main, nav, section';\n      return node.hasAttribute('role') || !find_up_virtual_default(virtualNode, nativeScopeFilter);\n    }\n    var landmark_has_body_context_matches_default = landmarkHasBodyContextMatches;\n    function landmarkUniqueMatches(node, virtualNode) {\n      var excludedParentsForHeaderFooterLandmarks = [ 'article', 'aside', 'main', 'nav', 'section' ].join(',');\n      function isHeaderFooterLandmark(headerFooterElement) {\n        return !find_up_virtual_default(headerFooterElement, excludedParentsForHeaderFooterLandmarks);\n      }\n      function isLandmarkVirtual(virtualNode2) {\n        var actualNode = virtualNode2.actualNode;\n        var landmarkRoles2 = get_aria_roles_by_type_default('landmark');\n        var role = get_role_default(actualNode);\n        if (!role) {\n          return false;\n        }\n        var nodeName2 = actualNode.nodeName.toUpperCase();\n        if (nodeName2 === 'HEADER' || nodeName2 === 'FOOTER') {\n          return isHeaderFooterLandmark(virtualNode2);\n        }\n        if (nodeName2 === 'SECTION' || nodeName2 === 'FORM') {\n          var accessibleText2 = accessible_text_virtual_default(virtualNode2);\n          return !!accessibleText2;\n        }\n        return landmarkRoles2.indexOf(role) >= 0 || role === 'region';\n      }\n      return isLandmarkVirtual(virtualNode) && is_visible_default(node, true);\n    }\n    var landmark_unique_matches_default = landmarkUniqueMatches;\n    function dataTableMatches2(node) {\n      return !is_data_table_default(node) && !is_focusable_default(node);\n    }\n    var layout_table_matches_default = dataTableMatches2;\n    function linkInTextBlockMatches(node) {\n      var text32 = sanitize_default(node.textContent);\n      var role = node.getAttribute('role');\n      if (role && role !== 'link') {\n        return false;\n      }\n      if (!text32) {\n        return false;\n      }\n      if (!is_visible_default(node, false)) {\n        return false;\n      }\n      return is_in_text_block_default(node);\n    }\n    var link_in_text_block_matches_default = linkInTextBlockMatches;\n    function nestedInteractiveMatches(node, virtualNode) {\n      var role = get_role_default(virtualNode);\n      if (!role) {\n        return false;\n      }\n      return !!standards_default.ariaRoles[role].childrenPresentational;\n    }\n    var nested_interactive_matches_default = nestedInteractiveMatches;\n    function noAutoplayAudioMatches(node) {\n      if (!node.currentSrc) {\n        return false;\n      }\n      if (node.hasAttribute('paused') || node.hasAttribute('muted')) {\n        return false;\n      }\n      return true;\n    }\n    var no_autoplay_audio_matches_default = noAutoplayAudioMatches;\n    function noEmptyRoleMatches(node, virtualNode) {\n      if (!virtualNode.hasAttr('role')) {\n        return false;\n      }\n      if (!virtualNode.attr('role').trim()) {\n        return false;\n      }\n      return true;\n    }\n    var no_empty_role_matches_default = noEmptyRoleMatches;\n    function noExplicitNameRequired(node, virtualNode) {\n      var role = get_explicit_role_default(virtualNode);\n      if (!role || [ 'none', 'presentation' ].includes(role)) {\n        return true;\n      }\n      var _ref65 = aria_roles_default[role] || {}, accessibleNameRequired = _ref65.accessibleNameRequired;\n      if (accessibleNameRequired || is_focusable_default(virtualNode)) {\n        return true;\n      }\n      return false;\n    }\n    var no_explicit_name_required_matches_default = noExplicitNameRequired;\n    function noNamingMethodMatches(node, virtualNode) {\n      var _get_element_spec_def = get_element_spec_default(virtualNode), namingMethods = _get_element_spec_def.namingMethods;\n      if (namingMethods && namingMethods.length !== 0) {\n        return false;\n      }\n      if (get_explicit_role_default(virtualNode) === 'combobox' && query_selector_all_default(virtualNode, 'input:not([type=\"hidden\"])').length) {\n        return false;\n      }\n      return true;\n    }\n    var no_naming_method_matches_default = noNamingMethodMatches;\n    function noRoleMatches(node) {\n      return !node.getAttribute('role');\n    }\n    var no_role_matches_default = noRoleMatches;\n    function notHtmlMatches(node, virtualNode) {\n      return virtualNode.props.nodeName !== 'html';\n    }\n    var not_html_matches_default = notHtmlMatches;\n    function pAsHeadingMatches(node) {\n      var children = Array.from(node.parentNode.childNodes);\n      var nodeText = node.textContent.trim();\n      var isSentence = /[.!?:;](?![.!?:;])/g;\n      if (nodeText.length === 0 || (nodeText.match(isSentence) || []).length >= 2) {\n        return false;\n      }\n      var siblingsAfter = children.slice(children.indexOf(node) + 1).filter(function(elm) {\n        return elm.nodeName.toUpperCase() === 'P' && elm.textContent.trim() !== '';\n      });\n      return siblingsAfter.length !== 0;\n    }\n    var p_as_heading_matches_default = pAsHeadingMatches;\n    function scrollableRegionFocusableMatches(node, virtualNode) {\n      if (!!get_scroll_default(node, 13) === false) {\n        return false;\n      }\n      var role = get_explicit_role_default(virtualNode);\n      if (standards_default.ariaRoles.combobox.requiredOwned.includes(role)) {\n        if (closest_default(virtualNode, '[role~=\"combobox\"]')) {\n          return false;\n        }\n        var id = virtualNode.attr('id');\n        if (id) {\n          var doc = get_root_node_default(node);\n          var owned = Array.from(doc.querySelectorAll('[aria-owns~=\"'.concat(id, '\"], [aria-controls~=\"').concat(id, '\"]')));\n          var comboboxOwned = owned.some(function(el) {\n            var roles = token_list_default(el.getAttribute('role'));\n            return roles.includes('combobox');\n          });\n          if (comboboxOwned) {\n            return false;\n          }\n        }\n      }\n      var nodeAndDescendents = query_selector_all_default(virtualNode, '*');\n      var hasVisibleChildren = nodeAndDescendents.some(function(elm) {\n        return has_content_virtual_default(elm, true, true);\n      });\n      if (!hasVisibleChildren) {\n        return false;\n      }\n      return true;\n    }\n    var scrollable_region_focusable_matches_default = scrollableRegionFocusableMatches;\n    function skipLinkMatches(node) {\n      return is_skip_link_default(node) && is_offscreen_default(node);\n    }\n    var skip_link_matches_default = skipLinkMatches;\n    function windowIsTopMatches(node) {\n      return node.ownerDocument.defaultView.self === node.ownerDocument.defaultView.top;\n    }\n    var window_is_top_matches_default = windowIsTopMatches;\n    function xmlLangMismatchMatches(node) {\n      var primaryLangValue = get_base_lang_default(node.getAttribute('lang'));\n      var primaryXmlLangValue = get_base_lang_default(node.getAttribute('xml:lang'));\n      return valid_langs_default(primaryLangValue) && valid_langs_default(primaryXmlLangValue);\n    }\n    var xml_lang_mismatch_matches_default = xmlLangMismatchMatches;\n    var metadataFunctionMap = {\n      'abstractrole-evaluate': abstractrole_evaluate_default,\n      'aria-allowed-attr-evaluate': aria_allowed_attr_evaluate_default,\n      'aria-allowed-role-evaluate': aria_allowed_role_evaluate_default,\n      'aria-errormessage-evaluate': aria_errormessage_evaluate_default,\n      'aria-hidden-body-evaluate': aria_hidden_body_evaluate_default,\n      'aria-prohibited-attr-evaluate': aria_prohibited_attr_evaluate_default,\n      'aria-required-attr-evaluate': aria_required_attr_evaluate_default,\n      'aria-required-children-evaluate': aria_required_children_evaluate_default,\n      'aria-required-parent-evaluate': aria_required_parent_evaluate_default,\n      'aria-roledescription-evaluate': aria_roledescription_evaluate_default,\n      'aria-unsupported-attr-evaluate': aria_unsupported_attr_evaluate_default,\n      'aria-valid-attr-evaluate': aria_valid_attr_evaluate_default,\n      'aria-valid-attr-value-evaluate': aria_valid_attr_value_evaluate_default,\n      'fallbackrole-evaluate': fallbackrole_evaluate_default,\n      'has-global-aria-attribute-evaluate': has_global_aria_attribute_evaluate_default,\n      'has-widget-role-evaluate': has_widget_role_evaluate_default,\n      'invalidrole-evaluate': invalidrole_evaluate_default,\n      'is-element-focusable-evaluate': is_element_focusable_evaluate_default,\n      'no-implicit-explicit-label-evaluate': no_implicit_explicit_label_evaluate_default,\n      'unsupportedrole-evaluate': unsupportedrole_evaluate_default,\n      'valid-scrollable-semantics-evaluate': valid_scrollable_semantics_evaluate_default,\n      'caption-faked-evaluate': caption_faked_evaluate_default,\n      'html5-scope-evaluate': html5_scope_evaluate_default,\n      'same-caption-summary-evaluate': same_caption_summary_evaluate_default,\n      'scope-value-evaluate': scope_value_evaluate_default,\n      'td-has-header-evaluate': td_has_header_evaluate_default,\n      'td-headers-attr-evaluate': td_headers_attr_evaluate_default,\n      'th-has-data-cells-evaluate': th_has_data_cells_evaluate_default,\n      'hidden-content-evaluate': hidden_content_evaluate_default,\n      'color-contrast-evaluate': color_contrast_evaluate_default,\n      'link-in-text-block-evaluate': link_in_text_block_evaluate_default,\n      'autocomplete-appropriate-evaluate': autocomplete_appropriate_evaluate_default,\n      'autocomplete-valid-evaluate': autocomplete_valid_evaluate_default,\n      'attr-non-space-content-evaluate': attr_non_space_content_evaluate_default,\n      'has-descendant-after': has_descendant_after_default,\n      'has-descendant-evaluate': has_descendant_evaluate_default,\n      'has-text-content-evaluate': has_text_content_evaluate_default,\n      'matches-definition-evaluate': matches_definition_evaluate_default,\n      'page-no-duplicate-after': page_no_duplicate_after_default,\n      'page-no-duplicate-evaluate': page_no_duplicate_evaluate_default,\n      'heading-order-after': heading_order_after_default,\n      'heading-order-evaluate': heading_order_evaluate_default,\n      'identical-links-same-purpose-after': identical_links_same_purpose_after_default,\n      'identical-links-same-purpose-evaluate': identical_links_same_purpose_evaluate_default,\n      'internal-link-present-evaluate': internal_link_present_evaluate_default,\n      'meta-refresh-evaluate': meta_refresh_evaluate_default,\n      'p-as-heading-evaluate': p_as_heading_evaluate_default,\n      'region-evaluate': region_evaluate_default,\n      'skip-link-evaluate': skip_link_evaluate_default,\n      'unique-frame-title-after': unique_frame_title_after_default,\n      'unique-frame-title-evaluate': unique_frame_title_evaluate_default,\n      'aria-label-evaluate': aria_label_evaluate_default,\n      'aria-labelledby-evaluate': aria_labelledby_evaluate_default,\n      'avoid-inline-spacing-evaluate': avoid_inline_spacing_evaluate_default,\n      'doc-has-title-evaluate': doc_has_title_evaluate_default,\n      'exists-evaluate': exists_evaluate_default,\n      'has-alt-evaluate': has_alt_evaluate_default,\n      'is-on-screen-evaluate': is_on_screen_evaluate_default,\n      'non-empty-if-present-evaluate': non_empty_if_present_evaluate_default,\n      'presentational-role-evaluate': presentational_role_evaluate_default,\n      'svg-non-empty-title-evaluate': svg_non_empty_title_evaluate_default,\n      'css-orientation-lock-evaluate': css_orientation_lock_evaluate_default,\n      'meta-viewport-scale-evaluate': meta_viewport_scale_evaluate_default,\n      'duplicate-id-after': duplicate_id_after_default,\n      'duplicate-id-evaluate': duplicate_id_evaluate_default,\n      'accesskeys-after': accesskeys_after_default,\n      'accesskeys-evaluate': accesskeys_evaluate_default,\n      'focusable-content-evaluate': focusable_content_evaluate_default,\n      'focusable-disabled-evaluate': focusable_disabled_evaluate_default,\n      'focusable-element-evaluate': focusable_element_evaluate_default,\n      'focusable-modal-open-evaluate': focusable_modal_open_evaluate_default,\n      'focusable-no-name-evaluate': focusable_no_name_evaluate_default,\n      'focusable-not-tabbable-evaluate': focusable_not_tabbable_evaluate_default,\n      'landmark-is-top-level-evaluate': landmark_is_top_level_evaluate_default,\n      'no-focusable-content-evaluate': no_focusable_content_evaluate_default,\n      'tabindex-evaluate': tabindex_evaluate_default,\n      'alt-space-value-evaluate': alt_space_value_evaluate_default,\n      'duplicate-img-label-evaluate': duplicate_img_label_evaluate_default,\n      'explicit-evaluate': explicit_evaluate_default,\n      'help-same-as-label-evaluate': help_same_as_label_evaluate_default,\n      'hidden-explicit-label-evaluate': hidden_explicit_label_evaluate_default,\n      'implicit-evaluate': implicit_evaluate_default,\n      'label-content-name-mismatch-evaluate': label_content_name_mismatch_evaluate_default,\n      'multiple-label-evaluate': multiple_label_evaluate_default,\n      'title-only-evaluate': title_only_evaluate_default,\n      'landmark-is-unique-after': landmark_is_unique_after_default,\n      'landmark-is-unique-evaluate': landmark_is_unique_evaluate_default,\n      'has-lang-evaluate': has_lang_evaluate_default,\n      'valid-lang-evaluate': valid_lang_evaluate_default,\n      'xml-lang-mismatch-evaluate': xml_lang_mismatch_evaluate_default,\n      'dlitem-evaluate': dlitem_evaluate_default,\n      'listitem-evaluate': listitem_evaluate_default,\n      'only-dlitems-evaluate': only_dlitems_evaluate_default,\n      'only-listitems-evaluate': only_listitems_evaluate_default,\n      'structured-dlitems-evaluate': structured_dlitems_evaluate_default,\n      'caption-evaluate': caption_evaluate_default,\n      'frame-tested-evaluate': frame_tested_evaluate_default,\n      'no-autoplay-audio-evaluate': no_autoplay_audio_evaluate_default,\n      'aria-allowed-attr-matches': aria_allowed_attr_matches_default,\n      'aria-allowed-role-matches': aria_allowed_role_matches_default,\n      'aria-form-field-name-matches': no_naming_method_matches_default,\n      'aria-has-attr-matches': aria_has_attr_matches_default,\n      'aria-hidden-focus-matches': aria_hidden_focus_matches_default,\n      'aria-required-children-matches': aria_required_children_matches_default,\n      'aria-required-parent-matches': aria_required_parent_matches_default,\n      'autocomplete-matches': autocomplete_matches_default,\n      'bypass-matches': bypass_matches_default,\n      'color-contrast-matches': color_contrast_matches_default,\n      'data-table-large-matches': data_table_large_matches_default,\n      'data-table-matches': data_table_matches_default,\n      'duplicate-id-active-matches': duplicate_id_active_matches_default,\n      'duplicate-id-aria-matches': duplicate_id_aria_matches_default,\n      'duplicate-id-misc-matches': duplicate_id_misc_matches_default,\n      'frame-focusable-content-matches': frame_focusable_content_matches_default,\n      'frame-title-has-text-matches': frame_title_has_text_matches_default,\n      'heading-matches': heading_matches_default,\n      'html-namespace-matches': html_namespace_matches_default,\n      'identical-links-same-purpose-matches': identical_links_same_purpose_matches_default,\n      'inserted-into-focus-order-matches': inserted_into_focus_order_matches_default,\n      'is-initiator-matches': is_initiator_matches_default,\n      'label-content-name-mismatch-matches': label_content_name_mismatch_matches_default,\n      'label-matches': label_matches_default,\n      'landmark-has-body-context-matches': landmark_has_body_context_matches_default,\n      'landmark-unique-matches': landmark_unique_matches_default,\n      'layout-table-matches': layout_table_matches_default,\n      'link-in-text-block-matches': link_in_text_block_matches_default,\n      'nested-interactive-matches': nested_interactive_matches_default,\n      'no-autoplay-audio-matches': no_autoplay_audio_matches_default,\n      'no-empty-role-matches': no_empty_role_matches_default,\n      'no-explicit-name-required-matches': no_explicit_name_required_matches_default,\n      'no-naming-method-matches': no_naming_method_matches_default,\n      'no-role-matches': no_role_matches_default,\n      'not-html-matches': not_html_matches_default,\n      'p-as-heading-matches': p_as_heading_matches_default,\n      'scrollable-region-focusable-matches': scrollable_region_focusable_matches_default,\n      'skip-link-matches': skip_link_matches_default,\n      'svg-namespace-matches': svg_namespace_matches_default,\n      'window-is-top-matches': window_is_top_matches_default,\n      'xml-lang-mismatch-matches': xml_lang_mismatch_matches_default\n    };\n    var metadata_function_map_default = metadataFunctionMap;\n    function CheckResult(check4) {\n      this.id = check4.id;\n      this.data = null;\n      this.relatedNodes = [];\n      this.result = null;\n    }\n    var check_result_default = CheckResult;\n    function createExecutionContext(spec) {\n      if (typeof spec === 'string') {\n        if (metadata_function_map_default[spec]) {\n          return metadata_function_map_default[spec];\n        }\n        if (/^\\s*function[\\s\\w]*\\(/.test(spec)) {\n          return new Function('return ' + spec + ';')();\n        }\n        throw new ReferenceError('Function ID does not exist in the metadata-function-map: '.concat(spec));\n      }\n      return spec;\n    }\n    function normalizeOptions() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      if (Array.isArray(options) || _typeof(options) !== 'object') {\n        options = {\n          value: options\n        };\n      }\n      return options;\n    }\n    function Check(spec) {\n      if (spec) {\n        this.id = spec.id;\n        this.configure(spec);\n      }\n    }\n    Check.prototype.enabled = true;\n    Check.prototype.run = function run(node, options, context3, resolve, reject) {\n      options = options || {};\n      var enabled = options.hasOwnProperty('enabled') ? options.enabled : this.enabled;\n      var checkOptions = this.getOptions(options.options);\n      if (enabled) {\n        var checkResult = new check_result_default(this);\n        var helper = check_helper_default(checkResult, options, resolve, reject);\n        var result;\n        try {\n          result = this.evaluate.call(helper, node.actualNode, checkOptions, node, context3);\n        } catch (e) {\n          if (node && node.actualNode) {\n            e.errorNode = new dq_element_default(node.actualNode).toJSON();\n          }\n          reject(e);\n          return;\n        }\n        if (!helper.isAsync) {\n          checkResult.result = result;\n          resolve(checkResult);\n        }\n      } else {\n        resolve(null);\n      }\n    };\n    Check.prototype.runSync = function runSync(node, options, context3) {\n      options = options || {};\n      var _options = options, _options$enabled = _options.enabled, enabled = _options$enabled === void 0 ? this.enabled : _options$enabled;\n      if (!enabled) {\n        return null;\n      }\n      var checkOptions = this.getOptions(options.options);\n      var checkResult = new check_result_default(this);\n      var helper = check_helper_default(checkResult, options);\n      helper.async = function async() {\n        throw new Error('Cannot run async check while in a synchronous run');\n      };\n      var result;\n      try {\n        result = this.evaluate.call(helper, node.actualNode, checkOptions, node, context3);\n      } catch (e) {\n        if (node && node.actualNode) {\n          e.errorNode = new dq_element_default(node.actualNode).toJSON();\n        }\n        throw e;\n      }\n      checkResult.result = result;\n      return checkResult;\n    };\n    Check.prototype.configure = function configure(spec) {\n      var _this3 = this;\n      if (!spec.evaluate || metadata_function_map_default[spec.evaluate]) {\n        this._internalCheck = true;\n      }\n      if (spec.hasOwnProperty('enabled')) {\n        this.enabled = spec.enabled;\n      }\n      if (spec.hasOwnProperty('options')) {\n        if (this._internalCheck) {\n          this.options = normalizeOptions(spec.options);\n        } else {\n          this.options = spec.options;\n        }\n      }\n      [ 'evaluate', 'after' ].filter(function(prop) {\n        return spec.hasOwnProperty(prop);\n      }).forEach(function(prop) {\n        return _this3[prop] = createExecutionContext(spec[prop]);\n      });\n    };\n    Check.prototype.getOptions = function getOptions(options) {\n      if (this._internalCheck) {\n        return deep_merge_default(this.options, normalizeOptions(options || {}));\n      } else {\n        return options || this.options;\n      }\n    };\n    var check_default = Check;\n    function RuleResult(rule3) {\n      this.id = rule3.id;\n      this.result = constants_default.NA;\n      this.pageLevel = rule3.pageLevel;\n      this.impact = null;\n      this.nodes = [];\n    }\n    var rule_result_default = RuleResult;\n    function Rule(spec, parentAudit) {\n      this._audit = parentAudit;\n      this.id = spec.id;\n      this.selector = spec.selector || '*';\n      if (spec.impact) {\n        assert_default(constants_default.impact.includes(spec.impact), 'Impact '.concat(spec.impact, ' is not a valid impact'));\n        this.impact = spec.impact;\n      }\n      this.excludeHidden = typeof spec.excludeHidden === 'boolean' ? spec.excludeHidden : true;\n      this.enabled = typeof spec.enabled === 'boolean' ? spec.enabled : true;\n      this.pageLevel = typeof spec.pageLevel === 'boolean' ? spec.pageLevel : false;\n      this.reviewOnFail = typeof spec.reviewOnFail === 'boolean' ? spec.reviewOnFail : false;\n      this.any = spec.any || [];\n      this.all = spec.all || [];\n      this.none = spec.none || [];\n      this.tags = spec.tags || [];\n      this.preload = spec.preload ? true : false;\n      if (spec.matches) {\n        this.matches = createExecutionContext(spec.matches);\n      }\n    }\n    Rule.prototype.matches = function matches13() {\n      return true;\n    };\n    Rule.prototype.gather = function gather(context3) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var markStart = 'mark_gather_start_' + this.id;\n      var markEnd = 'mark_gather_end_' + this.id;\n      var markHiddenStart = 'mark_isHidden_start_' + this.id;\n      var markHiddenEnd = 'mark_isHidden_end_' + this.id;\n      if (options.performanceTimer) {\n        performance_timer_default.mark(markStart);\n      }\n      var elements = select_default(this.selector, context3);\n      if (this.excludeHidden) {\n        if (options.performanceTimer) {\n          performance_timer_default.mark(markHiddenStart);\n        }\n        elements = elements.filter(function(element) {\n          return !is_hidden_default(element.actualNode);\n        });\n        if (options.performanceTimer) {\n          performance_timer_default.mark(markHiddenEnd);\n          performance_timer_default.measure('rule_' + this.id + '#gather_axe.utils.isHidden', markHiddenStart, markHiddenEnd);\n        }\n      }\n      if (options.performanceTimer) {\n        performance_timer_default.mark(markEnd);\n        performance_timer_default.measure('rule_' + this.id + '#gather', markStart, markEnd);\n      }\n      return elements;\n    };\n    Rule.prototype.runChecks = function runChecks(type, node, options, context3, resolve, reject) {\n      var self2 = this;\n      var checkQueue = queue_default();\n      this[type].forEach(function(c) {\n        var check4 = self2._audit.checks[c.id || c];\n        var option = get_check_option_default(check4, self2.id, options);\n        checkQueue.defer(function(res, rej) {\n          check4.run(node, option, context3, res, rej);\n        });\n      });\n      checkQueue.then(function(results) {\n        results = results.filter(function(check4) {\n          return check4;\n        });\n        resolve({\n          type: type,\n          results: results\n        });\n      })['catch'](reject);\n    };\n    Rule.prototype.runChecksSync = function runChecksSync(type, node, options, context3) {\n      var self2 = this;\n      var results = [];\n      this[type].forEach(function(c) {\n        var check4 = self2._audit.checks[c.id || c];\n        var option = get_check_option_default(check4, self2.id, options);\n        results.push(check4.runSync(node, option, context3));\n      });\n      results = results.filter(function(check4) {\n        return check4;\n      });\n      return {\n        type: type,\n        results: results\n      };\n    };\n    Rule.prototype.run = function run2(context3) {\n      var _this4 = this;\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var resolve = arguments.length > 2 ? arguments[2] : undefined;\n      var reject = arguments.length > 3 ? arguments[3] : undefined;\n      if (options.performanceTimer) {\n        this._trackPerformance();\n      }\n      var q = queue_default();\n      var ruleResult = new rule_result_default(this);\n      var nodes;\n      try {\n        nodes = this.gatherAndMatchNodes(context3, options);\n      } catch (error) {\n        reject(new SupportError({\n          cause: error,\n          ruleId: this.id\n        }));\n        return;\n      }\n      if (options.performanceTimer) {\n        this._logGatherPerformance(nodes);\n      }\n      nodes.forEach(function(node) {\n        q.defer(function(resolveNode, rejectNode) {\n          var checkQueue = queue_default();\n          [ 'any', 'all', 'none' ].forEach(function(type) {\n            checkQueue.defer(function(res, rej) {\n              _this4.runChecks(type, node, options, context3, res, rej);\n            });\n          });\n          checkQueue.then(function(results) {\n            var result = getResult(results);\n            if (result) {\n              result.node = new dq_element_default(node.actualNode, options);\n              ruleResult.nodes.push(result);\n              if (_this4.reviewOnFail) {\n                [ 'any', 'all' ].forEach(function(type) {\n                  result[type].forEach(function(checkResult) {\n                    if (checkResult.result === false) {\n                      checkResult.result = void 0;\n                    }\n                  });\n                });\n                result.none.forEach(function(checkResult) {\n                  if (checkResult.result === true) {\n                    checkResult.result = void 0;\n                  }\n                });\n              }\n            }\n            resolveNode();\n          })['catch'](function(err2) {\n            return rejectNode(err2);\n          });\n        });\n      });\n      q.defer(function(resolve2) {\n        return setTimeout(resolve2, 0);\n      });\n      if (options.performanceTimer) {\n        this._logRulePerformance();\n      }\n      q.then(function() {\n        return resolve(ruleResult);\n      })['catch'](function(error) {\n        return reject(error);\n      });\n    };\n    Rule.prototype.runSync = function runSync2(context3) {\n      var _this5 = this;\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      if (options.performanceTimer) {\n        this._trackPerformance();\n      }\n      var ruleResult = new rule_result_default(this);\n      var nodes;\n      try {\n        nodes = this.gatherAndMatchNodes(context3, options);\n      } catch (error) {\n        throw new SupportError({\n          cause: error,\n          ruleId: this.id\n        });\n      }\n      if (options.performanceTimer) {\n        this._logGatherPerformance(nodes);\n      }\n      nodes.forEach(function(node) {\n        var results = [];\n        [ 'any', 'all', 'none' ].forEach(function(type) {\n          results.push(_this5.runChecksSync(type, node, options, context3));\n        });\n        var result = getResult(results);\n        if (result) {\n          result.node = node.actualNode ? new dq_element_default(node.actualNode, options) : null;\n          ruleResult.nodes.push(result);\n          if (_this5.reviewOnFail) {\n            [ 'any', 'all' ].forEach(function(type) {\n              result[type].forEach(function(checkResult) {\n                if (checkResult.result === false) {\n                  checkResult.result = void 0;\n                }\n              });\n            });\n            result.none.forEach(function(checkResult) {\n              if (checkResult.result === true) {\n                checkResult.result = void 0;\n              }\n            });\n          }\n        }\n      });\n      if (options.performanceTimer) {\n        this._logRulePerformance();\n      }\n      return ruleResult;\n    };\n    Rule.prototype._trackPerformance = function _trackPerformance() {\n      this._markStart = 'mark_rule_start_' + this.id;\n      this._markEnd = 'mark_rule_end_' + this.id;\n      this._markChecksStart = 'mark_runchecks_start_' + this.id;\n      this._markChecksEnd = 'mark_runchecks_end_' + this.id;\n    };\n    Rule.prototype._logGatherPerformance = function _logGatherPerformance(nodes) {\n      log_default('gather (', nodes.length, '):', performance_timer_default.timeElapsed() + 'ms');\n      performance_timer_default.mark(this._markChecksStart);\n    };\n    Rule.prototype._logRulePerformance = function _logRulePerformance() {\n      performance_timer_default.mark(this._markChecksEnd);\n      performance_timer_default.mark(this._markEnd);\n      performance_timer_default.measure('runchecks_' + this.id, this._markChecksStart, this._markChecksEnd);\n      performance_timer_default.measure('rule_' + this.id, this._markStart, this._markEnd);\n    };\n    function getResult(results) {\n      if (results.length) {\n        var hasResults = false;\n        var result = {};\n        results.forEach(function(r) {\n          var res = r.results.filter(function(result2) {\n            return result2;\n          });\n          result[r.type] = res;\n          if (res.length) {\n            hasResults = true;\n          }\n        });\n        if (hasResults) {\n          return result;\n        }\n        return null;\n      }\n    }\n    Rule.prototype.gatherAndMatchNodes = function gatherAndMatchNodes(context3, options) {\n      var _this6 = this;\n      var markMatchesStart = 'mark_matches_start_' + this.id;\n      var markMatchesEnd = 'mark_matches_end_' + this.id;\n      var nodes = this.gather(context3, options);\n      if (options.performanceTimer) {\n        performance_timer_default.mark(markMatchesStart);\n      }\n      nodes = nodes.filter(function(node) {\n        return _this6.matches(node.actualNode, node, context3);\n      });\n      if (options.performanceTimer) {\n        performance_timer_default.mark(markMatchesEnd);\n        performance_timer_default.measure('rule_' + this.id + '#matches', markMatchesStart, markMatchesEnd);\n      }\n      return nodes;\n    };\n    function findAfterChecks(rule3) {\n      return get_all_checks_default(rule3).map(function(c) {\n        var check4 = rule3._audit.checks[c.id || c];\n        return check4 && typeof check4.after === 'function' ? check4 : null;\n      }).filter(Boolean);\n    }\n    function findCheckResults(nodes, checkID) {\n      var checkResults = [];\n      nodes.forEach(function(nodeResult) {\n        var checks = get_all_checks_default(nodeResult);\n        checks.forEach(function(checkResult) {\n          if (checkResult.id === checkID) {\n            checkResult.node = nodeResult.node;\n            checkResults.push(checkResult);\n          }\n        });\n      });\n      return checkResults;\n    }\n    function filterChecks(checks) {\n      return checks.filter(function(check4) {\n        return check4.filtered !== true;\n      });\n    }\n    function sanitizeNodes(result) {\n      var checkTypes2 = [ 'any', 'all', 'none' ];\n      var nodes = result.nodes.filter(function(detail) {\n        var length = 0;\n        checkTypes2.forEach(function(type) {\n          detail[type] = filterChecks(detail[type]);\n          length += detail[type].length;\n        });\n        return length > 0;\n      });\n      if (result.pageLevel && nodes.length) {\n        nodes = [ nodes.reduce(function(a, b) {\n          if (a) {\n            checkTypes2.forEach(function(type) {\n              a[type].push.apply(a[type], b[type]);\n            });\n            return a;\n          }\n        }) ];\n      }\n      return nodes;\n    }\n    Rule.prototype.after = function after(result, options) {\n      var afterChecks = findAfterChecks(this);\n      var ruleID = this.id;\n      afterChecks.forEach(function(check4) {\n        var beforeResults = findCheckResults(result.nodes, check4.id);\n        var option = get_check_option_default(check4, ruleID, options);\n        var afterResults = check4.after(beforeResults, option);\n        beforeResults.forEach(function(item) {\n          delete item.node;\n          if (afterResults.indexOf(item) === -1) {\n            item.filtered = true;\n          }\n        });\n      });\n      result.nodes = sanitizeNodes(result);\n      return result;\n    };\n    Rule.prototype.configure = function configure2(spec) {\n      if (spec.hasOwnProperty('selector')) {\n        this.selector = spec.selector;\n      }\n      if (spec.hasOwnProperty('excludeHidden')) {\n        this.excludeHidden = typeof spec.excludeHidden === 'boolean' ? spec.excludeHidden : true;\n      }\n      if (spec.hasOwnProperty('enabled')) {\n        this.enabled = typeof spec.enabled === 'boolean' ? spec.enabled : true;\n      }\n      if (spec.hasOwnProperty('pageLevel')) {\n        this.pageLevel = typeof spec.pageLevel === 'boolean' ? spec.pageLevel : false;\n      }\n      if (spec.hasOwnProperty('reviewOnFail')) {\n        this.reviewOnFail = typeof spec.reviewOnFail === 'boolean' ? spec.reviewOnFail : false;\n      }\n      if (spec.hasOwnProperty('any')) {\n        this.any = spec.any;\n      }\n      if (spec.hasOwnProperty('all')) {\n        this.all = spec.all;\n      }\n      if (spec.hasOwnProperty('none')) {\n        this.none = spec.none;\n      }\n      if (spec.hasOwnProperty('tags')) {\n        this.tags = spec.tags;\n      }\n      if (spec.hasOwnProperty('matches')) {\n        this.matches = createExecutionContext(spec.matches);\n      }\n      if (spec.impact) {\n        assert_default(constants_default.impact.includes(spec.impact), 'Impact '.concat(spec.impact, ' is not a valid impact'));\n        this.impact = spec.impact;\n      }\n    };\n    var rule_default = Rule;\n    var dot = __toModule(require_doT());\n    var dotRegex = /\\{\\{.+?\\}\\}/g;\n    function getDefaultOrigin() {\n      if (window.origin) {\n        return window.origin;\n      }\n      if (window.location && window.location.origin) {\n        return window.location.origin;\n      }\n    }\n    function getDefaultConfiguration(audit3) {\n      var config;\n      if (audit3) {\n        config = clone_default(audit3);\n        config.commons = audit3.commons;\n      } else {\n        config = {};\n      }\n      config.reporter = config.reporter || null;\n      config.noHtml = config.noHtml || false;\n      if (!config.allowedOrigins) {\n        var defaultOrigin = getDefaultOrigin();\n        config.allowedOrigins = defaultOrigin ? [ defaultOrigin ] : [];\n      }\n      config.rules = config.rules || [];\n      config.checks = config.checks || [];\n      config.data = _extends({\n        checks: {},\n        rules: {}\n      }, config.data);\n      return config;\n    }\n    function unpackToObject(collection, audit3, method) {\n      var i, l;\n      for (i = 0, l = collection.length; i < l; i++) {\n        audit3[method](collection[i]);\n      }\n    }\n    var mergeCheckLocale = function mergeCheckLocale(a, b) {\n      var pass = b.pass, fail = b.fail;\n      if (typeof pass === 'string' && dotRegex.test(pass)) {\n        pass = dot['default'].compile(pass);\n      }\n      if (typeof fail === 'string' && dotRegex.test(fail)) {\n        fail = dot['default'].compile(fail);\n      }\n      return _extends({}, a, {\n        messages: {\n          pass: pass || a.messages.pass,\n          fail: fail || a.messages.fail,\n          incomplete: _typeof(a.messages.incomplete) === 'object' ? _extends({}, a.messages.incomplete, b.incomplete) : b.incomplete\n        }\n      });\n    };\n    var mergeRuleLocale = function mergeRuleLocale(a, b) {\n      var help = b.help, description = b.description;\n      if (typeof help === 'string' && dotRegex.test(help)) {\n        help = dot['default'].compile(help);\n      }\n      if (typeof description === 'string' && dotRegex.test(description)) {\n        description = dot['default'].compile(description);\n      }\n      return _extends({}, a, {\n        help: help || a.help,\n        description: description || a.description\n      });\n    };\n    var mergeFailureMessage = function mergeFailureMessage(a, b) {\n      var failureMessage = b.failureMessage;\n      if (typeof failureMessage === 'string' && dotRegex.test(failureMessage)) {\n        failureMessage = dot['default'].compile(failureMessage);\n      }\n      return _extends({}, a, {\n        failureMessage: failureMessage || a.failureMessage\n      });\n    };\n    var mergeFallbackMessage = function mergeFallbackMessage(a, b) {\n      if (typeof b === 'string' && dotRegex.test(b)) {\n        b = dot['default'].compile(b);\n      }\n      return b || a;\n    };\n    var Audit = function() {\n      function Audit(audit3) {\n        _classCallCheck(this, Audit);\n        this.lang = 'en';\n        this.defaultConfig = audit3;\n        this.standards = standards_default;\n        this._init();\n        this._defaultLocale = null;\n      }\n      _createClass(Audit, [ {\n        key: '_setDefaultLocale',\n        value: function _setDefaultLocale() {\n          if (this._defaultLocale) {\n            return;\n          }\n          var locale = {\n            checks: {},\n            rules: {},\n            failureSummaries: {},\n            incompleteFallbackMessage: '',\n            lang: this.lang\n          };\n          var checkIDs = Object.keys(this.data.checks);\n          for (var _i24 = 0; _i24 < checkIDs.length; _i24++) {\n            var id = checkIDs[_i24];\n            var check4 = this.data.checks[id];\n            var _check4$messages = check4.messages, pass = _check4$messages.pass, fail = _check4$messages.fail, incomplete = _check4$messages.incomplete;\n            locale.checks[id] = {\n              pass: pass,\n              fail: fail,\n              incomplete: incomplete\n            };\n          }\n          var ruleIDs = Object.keys(this.data.rules);\n          for (var _i25 = 0; _i25 < ruleIDs.length; _i25++) {\n            var _id = ruleIDs[_i25];\n            var rule3 = this.data.rules[_id];\n            var description = rule3.description, help = rule3.help;\n            locale.rules[_id] = {\n              description: description,\n              help: help\n            };\n          }\n          var failureSummaries = Object.keys(this.data.failureSummaries);\n          for (var _i26 = 0; _i26 < failureSummaries.length; _i26++) {\n            var type = failureSummaries[_i26];\n            var failureSummary2 = this.data.failureSummaries[type];\n            var failureMessage = failureSummary2.failureMessage;\n            locale.failureSummaries[type] = {\n              failureMessage: failureMessage\n            };\n          }\n          locale.incompleteFallbackMessage = this.data.incompleteFallbackMessage;\n          this._defaultLocale = locale;\n        }\n      }, {\n        key: '_resetLocale',\n        value: function _resetLocale() {\n          var defaultLocale = this._defaultLocale;\n          if (!defaultLocale) {\n            return;\n          }\n          this.applyLocale(defaultLocale);\n        }\n      }, {\n        key: '_applyCheckLocale',\n        value: function _applyCheckLocale(checks) {\n          var keys = Object.keys(checks);\n          for (var _i27 = 0; _i27 < keys.length; _i27++) {\n            var id = keys[_i27];\n            if (!this.data.checks[id]) {\n              throw new Error('Locale provided for unknown check: \"'.concat(id, '\"'));\n            }\n            this.data.checks[id] = mergeCheckLocale(this.data.checks[id], checks[id]);\n          }\n        }\n      }, {\n        key: '_applyRuleLocale',\n        value: function _applyRuleLocale(rules) {\n          var keys = Object.keys(rules);\n          for (var _i28 = 0; _i28 < keys.length; _i28++) {\n            var id = keys[_i28];\n            if (!this.data.rules[id]) {\n              throw new Error('Locale provided for unknown rule: \"'.concat(id, '\"'));\n            }\n            this.data.rules[id] = mergeRuleLocale(this.data.rules[id], rules[id]);\n          }\n        }\n      }, {\n        key: '_applyFailureSummaries',\n        value: function _applyFailureSummaries(messages) {\n          var keys = Object.keys(messages);\n          for (var _i29 = 0; _i29 < keys.length; _i29++) {\n            var key = keys[_i29];\n            if (!this.data.failureSummaries[key]) {\n              throw new Error('Locale provided for unknown failureMessage: \"'.concat(key, '\"'));\n            }\n            this.data.failureSummaries[key] = mergeFailureMessage(this.data.failureSummaries[key], messages[key]);\n          }\n        }\n      }, {\n        key: 'applyLocale',\n        value: function applyLocale(locale) {\n          this._setDefaultLocale();\n          if (locale.checks) {\n            this._applyCheckLocale(locale.checks);\n          }\n          if (locale.rules) {\n            this._applyRuleLocale(locale.rules);\n          }\n          if (locale.failureSummaries) {\n            this._applyFailureSummaries(locale.failureSummaries, 'failureSummaries');\n          }\n          if (locale.incompleteFallbackMessage) {\n            this.data.incompleteFallbackMessage = mergeFallbackMessage(this.data.incompleteFallbackMessage, locale.incompleteFallbackMessage);\n          }\n          if (locale.lang) {\n            this.lang = locale.lang;\n          }\n        }\n      }, {\n        key: 'setAllowedOrigins',\n        value: function setAllowedOrigins(allowedOrigins) {\n          var defaultOrigin = getDefaultOrigin();\n          this.allowedOrigins = [];\n          var _iterator2 = _createForOfIteratorHelper(allowedOrigins), _step2;\n          try {\n            for (_iterator2.s(); !(_step2 = _iterator2.n()).done; ) {\n              var origin = _step2.value;\n              if (origin === constants_default.allOrigins) {\n                this.allowedOrigins = [ '*' ];\n                return;\n              } else if (origin !== constants_default.sameOrigin) {\n                this.allowedOrigins.push(origin);\n              } else if (defaultOrigin) {\n                this.allowedOrigins.push(defaultOrigin);\n              }\n            }\n          } catch (err) {\n            _iterator2.e(err);\n          } finally {\n            _iterator2.f();\n          }\n        }\n      }, {\n        key: '_init',\n        value: function _init() {\n          var audit3 = getDefaultConfiguration(this.defaultConfig);\n          this.lang = audit3.lang || 'en';\n          this.reporter = audit3.reporter;\n          this.commands = {};\n          this.rules = [];\n          this.checks = {};\n          this.brand = 'axe';\n          this.application = 'axeAPI';\n          this.tagExclude = [ 'experimental' ];\n          this.noHtml = audit3.noHtml;\n          this.allowedOrigins = audit3.allowedOrigins;\n          unpackToObject(audit3.rules, this, 'addRule');\n          unpackToObject(audit3.checks, this, 'addCheck');\n          this.data = {};\n          this.data.checks = audit3.data && audit3.data.checks || {};\n          this.data.rules = audit3.data && audit3.data.rules || {};\n          this.data.failureSummaries = audit3.data && audit3.data.failureSummaries || {};\n          this.data.incompleteFallbackMessage = audit3.data && audit3.data.incompleteFallbackMessage || '';\n          this._constructHelpUrls();\n        }\n      }, {\n        key: 'registerCommand',\n        value: function registerCommand(command) {\n          this.commands[command.id] = command.callback;\n        }\n      }, {\n        key: 'addRule',\n        value: function addRule(spec) {\n          if (spec.metadata) {\n            this.data.rules[spec.id] = spec.metadata;\n          }\n          var rule3 = this.getRule(spec.id);\n          if (rule3) {\n            rule3.configure(spec);\n          } else {\n            this.rules.push(new rule_default(spec, this));\n          }\n        }\n      }, {\n        key: 'addCheck',\n        value: function addCheck(spec) {\n          var metadata = spec.metadata;\n          if (_typeof(metadata) === 'object') {\n            this.data.checks[spec.id] = metadata;\n            if (_typeof(metadata.messages) === 'object') {\n              Object.keys(metadata.messages).filter(function(prop) {\n                return metadata.messages.hasOwnProperty(prop) && typeof metadata.messages[prop] === 'string';\n              }).forEach(function(prop) {\n                if (metadata.messages[prop].indexOf('function') === 0) {\n                  metadata.messages[prop] = new Function('return ' + metadata.messages[prop] + ';')();\n                }\n              });\n            }\n          }\n          if (this.checks[spec.id]) {\n            this.checks[spec.id].configure(spec);\n          } else {\n            this.checks[spec.id] = new check_default(spec);\n          }\n        }\n      }, {\n        key: 'run',\n        value: function run(context3, options, resolve, reject) {\n          this.normalizeOptions(options);\n          axe._selectCache = [];\n          var allRulesToRun = getRulesToRun(this.rules, context3, options);\n          var runNowRules = allRulesToRun.now;\n          var runLaterRules = allRulesToRun.later;\n          var nowRulesQueue = queue_default();\n          runNowRules.forEach(function(rule3) {\n            nowRulesQueue.defer(getDefferedRule(rule3, context3, options));\n          });\n          var preloaderQueue = queue_default();\n          if (runLaterRules.length) {\n            preloaderQueue.defer(function(resolve2) {\n              preload_default(options).then(function(assets) {\n                return resolve2(assets);\n              })['catch'](function(err2) {\n                console.warn('Couldn\\'t load preload assets: ', err2);\n                resolve2(void 0);\n              });\n            });\n          }\n          var queueForNowRulesAndPreloader = queue_default();\n          queueForNowRulesAndPreloader.defer(nowRulesQueue);\n          queueForNowRulesAndPreloader.defer(preloaderQueue);\n          queueForNowRulesAndPreloader.then(function(nowRulesAndPreloaderResults) {\n            var assetsFromQueue = nowRulesAndPreloaderResults.pop();\n            if (assetsFromQueue && assetsFromQueue.length) {\n              var assets = assetsFromQueue[0];\n              if (assets) {\n                context3 = _extends({}, context3, assets);\n              }\n            }\n            var nowRulesResults = nowRulesAndPreloaderResults[0];\n            if (!runLaterRules.length) {\n              axe._selectCache = void 0;\n              resolve(nowRulesResults.filter(function(result) {\n                return !!result;\n              }));\n              return;\n            }\n            var laterRulesQueue = queue_default();\n            runLaterRules.forEach(function(rule3) {\n              var deferredRule = getDefferedRule(rule3, context3, options);\n              laterRulesQueue.defer(deferredRule);\n            });\n            laterRulesQueue.then(function(laterRuleResults) {\n              axe._selectCache = void 0;\n              resolve(nowRulesResults.concat(laterRuleResults).filter(function(result) {\n                return !!result;\n              }));\n            })['catch'](reject);\n          })['catch'](reject);\n        }\n      }, {\n        key: 'after',\n        value: function after(results, options) {\n          var rules = this.rules;\n          return results.map(function(ruleResult) {\n            var rule3 = find_by_default(rules, 'id', ruleResult.id);\n            if (!rule3) {\n              throw new Error('Result for unknown rule. You may be running mismatch axe-core versions');\n            }\n            return rule3.after(ruleResult, options);\n          });\n        }\n      }, {\n        key: 'getRule',\n        value: function getRule(ruleId) {\n          return this.rules.find(function(rule3) {\n            return rule3.id === ruleId;\n          });\n        }\n      }, {\n        key: 'normalizeOptions',\n        value: function normalizeOptions(options) {\n          var audit3 = this;\n          var tags = [];\n          var ruleIds = [];\n          audit3.rules.forEach(function(rule3) {\n            ruleIds.push(rule3.id);\n            rule3.tags.forEach(function(tag) {\n              if (!tags.includes(tag)) {\n                tags.push(tag);\n              }\n            });\n          });\n          if (_typeof(options.runOnly) === 'object') {\n            if (Array.isArray(options.runOnly)) {\n              var hasTag = options.runOnly.find(function(value) {\n                return tags.includes(value);\n              });\n              var hasRule = options.runOnly.find(function(value) {\n                return ruleIds.includes(value);\n              });\n              if (hasTag && hasRule) {\n                throw new Error('runOnly cannot be both rules and tags');\n              }\n              if (hasRule) {\n                options.runOnly = {\n                  type: 'rule',\n                  values: options.runOnly\n                };\n              } else {\n                options.runOnly = {\n                  type: 'tag',\n                  values: options.runOnly\n                };\n              }\n            }\n            var only = options.runOnly;\n            if (only.value && !only.values) {\n              only.values = only.value;\n              delete only.value;\n            }\n            if (!Array.isArray(only.values) || only.values.length === 0) {\n              throw new Error('runOnly.values must be a non-empty array');\n            }\n            if ([ 'rule', 'rules' ].includes(only.type)) {\n              only.type = 'rule';\n              only.values.forEach(function(ruleId) {\n                if (!ruleIds.includes(ruleId)) {\n                  throw new Error('unknown rule `' + ruleId + '` in options.runOnly');\n                }\n              });\n            } else if ([ 'tag', 'tags', void 0 ].includes(only.type)) {\n              only.type = 'tag';\n              var unmatchedTags = only.values.filter(function(tag) {\n                return !tags.includes(tag);\n              });\n              if (unmatchedTags.length !== 0) {\n                log_default('Could not find tags `' + unmatchedTags.join('`, `') + '`');\n              }\n            } else {\n              throw new Error('Unknown runOnly type \\''.concat(only.type, '\\''));\n            }\n          }\n          if (_typeof(options.rules) === 'object') {\n            Object.keys(options.rules).forEach(function(ruleId) {\n              if (!ruleIds.includes(ruleId)) {\n                throw new Error('unknown rule `' + ruleId + '` in options.rules');\n              }\n            });\n          }\n          return options;\n        }\n      }, {\n        key: 'setBranding',\n        value: function setBranding(branding) {\n          var previous = {\n            brand: this.brand,\n            application: this.application\n          };\n          if (branding && branding.hasOwnProperty('brand') && branding.brand && typeof branding.brand === 'string') {\n            this.brand = branding.brand;\n          }\n          if (branding && branding.hasOwnProperty('application') && branding.application && typeof branding.application === 'string') {\n            this.application = branding.application;\n          }\n          this._constructHelpUrls(previous);\n        }\n      }, {\n        key: '_constructHelpUrls',\n        value: function _constructHelpUrls() {\n          var _this7 = this;\n          var previous = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n          var version = (axe.version.match(/^[1-9][0-9]*\\.[0-9]+/) || [ 'x.y' ])[0];\n          this.rules.forEach(function(rule3) {\n            if (!_this7.data.rules[rule3.id]) {\n              _this7.data.rules[rule3.id] = {};\n            }\n            var metaData = _this7.data.rules[rule3.id];\n            if (typeof metaData.helpUrl !== 'string' || previous && metaData.helpUrl === getHelpUrl(previous, rule3.id, version)) {\n              metaData.helpUrl = getHelpUrl(_this7, rule3.id, version);\n            }\n          });\n        }\n      }, {\n        key: 'resetRulesAndChecks',\n        value: function resetRulesAndChecks() {\n          this._init();\n          this._resetLocale();\n        }\n      } ]);\n      return Audit;\n    }();\n    function getRulesToRun(rules, context3, options) {\n      var base = {\n        now: [],\n        later: []\n      };\n      var splitRules = rules.reduce(function(out, rule3) {\n        if (!rule_should_run_default(rule3, context3, options)) {\n          return out;\n        }\n        if (rule3.preload) {\n          out.later.push(rule3);\n          return out;\n        }\n        out.now.push(rule3);\n        return out;\n      }, base);\n      return splitRules;\n    }\n    function getDefferedRule(rule3, context3, options) {\n      if (options.performanceTimer) {\n        performance_timer_default.mark('mark_rule_start_' + rule3.id);\n      }\n      return function(resolve, reject) {\n        rule3.run(context3, options, function(ruleResult) {\n          resolve(ruleResult);\n        }, function(err2) {\n          if (!options.debug) {\n            var errResult = Object.assign(new rule_result_default(rule3), {\n              result: constants_default.CANTTELL,\n              description: 'An error occured while running this rule',\n              message: err2.message,\n              stack: err2.stack,\n              error: err2,\n              errorNode: err2.errorNode\n            });\n            resolve(errResult);\n          } else {\n            reject(err2);\n          }\n        });\n      };\n    }\n    function getHelpUrl(_ref66, ruleId, version) {\n      var brand = _ref66.brand, application = _ref66.application, lang = _ref66.lang;\n      return constants_default.helpUrlBase + brand + '/' + (version || axe.version.substring(0, axe.version.lastIndexOf('.'))) + '/' + ruleId + '?application=' + encodeURIComponent(application) + (lang && lang !== 'en' ? '&lang=' + encodeURIComponent(lang) : '');\n    }\n    var audit_default = Audit;\n    function pushUniqueFrame(collection, frame) {\n      if (is_hidden_default(frame)) {\n        return;\n      }\n      var fr = find_by_default(collection, 'node', frame);\n      if (!fr) {\n        collection.push({\n          node: frame,\n          include: [],\n          exclude: []\n        });\n      }\n    }\n    function pushUniqueFrameSelector(context3, type, selectorArray) {\n      context3.frames = context3.frames || [];\n      var result, frame;\n      var frames = document.querySelectorAll(selectorArray.shift());\n      frameloop: for (var i = 0, l = frames.length; i < l; i++) {\n        frame = frames[i];\n        for (var j = 0, l2 = context3.frames.length; j < l2; j++) {\n          if (context3.frames[j].node === frame) {\n            context3.frames[j][type].push(selectorArray);\n            break frameloop;\n          }\n        }\n        result = {\n          node: frame,\n          include: [],\n          exclude: []\n        };\n        if (selectorArray) {\n          result[type].push(selectorArray);\n        }\n        context3.frames.push(result);\n      }\n    }\n    function normalizeContext(context3) {\n      if (context3 && _typeof(context3) === 'object' || context3 instanceof window.NodeList) {\n        if (context3 instanceof window.Node) {\n          return {\n            include: [ context3 ],\n            exclude: []\n          };\n        }\n        if (context3.hasOwnProperty('include') || context3.hasOwnProperty('exclude')) {\n          return {\n            include: context3.include && +context3.include.length ? context3.include : [ document ],\n            exclude: context3.exclude || []\n          };\n        }\n        if (context3.length === +context3.length) {\n          return {\n            include: context3,\n            exclude: []\n          };\n        }\n      }\n      if (typeof context3 === 'string') {\n        return {\n          include: [ context3 ],\n          exclude: []\n        };\n      }\n      return {\n        include: [ document ],\n        exclude: []\n      };\n    }\n    function parseSelectorArray(context3, type) {\n      var item, result = [], nodeList;\n      for (var i = 0, l = context3[type].length; i < l; i++) {\n        item = context3[type][i];\n        if (typeof item === 'string') {\n          nodeList = Array.from(document.querySelectorAll(item));\n          result = result.concat(nodeList.map(function(node) {\n            return get_node_from_tree_default(node);\n          }));\n          break;\n        } else if (item && item.length && !(item instanceof window.Node)) {\n          if (item.length > 1) {\n            pushUniqueFrameSelector(context3, type, item);\n          } else {\n            nodeList = Array.from(document.querySelectorAll(item[0]));\n            result = result.concat(nodeList.map(function(node) {\n              return get_node_from_tree_default(node);\n            }));\n          }\n        } else if (item instanceof window.Node) {\n          if (item.documentElement instanceof window.Node) {\n            result.push(context3.flatTree[0]);\n          } else {\n            result.push(get_node_from_tree_default(item));\n          }\n        }\n      }\n      return result.filter(function(r) {\n        return r;\n      });\n    }\n    function validateContext(context3) {\n      if (context3.include.length === 0) {\n        if (context3.frames.length === 0) {\n          var env = _respondable.isInFrame() ? 'frame' : 'page';\n          return new Error('No elements found for include in ' + env + ' Context');\n        }\n        context3.frames.forEach(function(frame, i) {\n          if (frame.include.length === 0) {\n            return new Error('No elements found for include in Context of frame ' + i);\n          }\n        });\n      }\n    }\n    function getRootNode2(_ref67) {\n      var include = _ref67.include, exclude = _ref67.exclude;\n      var selectors = Array.from(include).concat(Array.from(exclude));\n      for (var i = 0; i < selectors.length; ++i) {\n        var item = selectors[i];\n        if (item instanceof window.Element) {\n          return item.ownerDocument.documentElement;\n        }\n        if (item instanceof window.Document) {\n          return item.documentElement;\n        }\n      }\n      return document.documentElement;\n    }\n    function Context(spec) {\n      var _this8 = this;\n      this.frames = [];\n      this.initiator = spec && typeof spec.initiator === 'boolean' ? spec.initiator : true;\n      this.focusable = spec && typeof spec.focusable === 'boolean' ? spec.focusable : true;\n      this.boundingClientRect = spec && _typeof(spec.boundingClientRect) === 'object' ? spec.boundingClientRect : {};\n      this.page = false;\n      spec = normalizeContext(spec);\n      this.flatTree = get_flattened_tree_default(getRootNode2(spec));\n      this.exclude = spec.exclude;\n      this.include = spec.include;\n      this.include = parseSelectorArray(this, 'include');\n      this.exclude = parseSelectorArray(this, 'exclude');\n      select_default('frame, iframe', this).forEach(function(frame) {\n        if (is_node_in_context_default(frame, _this8)) {\n          pushUniqueFrame(_this8.frames, frame.actualNode);\n        }\n      });\n      if (this.include.length === 1 && this.include[0].actualNode === document.documentElement) {\n        this.page = true;\n      }\n      var err2 = validateContext(this);\n      if (err2 instanceof Error) {\n        throw err2;\n      }\n      if (!Array.isArray(this.include)) {\n        this.include = Array.from(this.include);\n      }\n      this.include.sort(node_sorter_default);\n    }\n    var context_default = Context;\n    var imports_exports = {};\n    __export(imports_exports, {\n      CssSelectorParser: function CssSelectorParser() {\n        return css_selector_parser2.CssSelectorParser;\n      },\n      doT: function doT() {\n        return dot2['default'];\n      },\n      emojiRegexText: function emojiRegexText() {\n        return emoji_regex3['default'];\n      },\n      memoize: function memoize() {\n        return memoizee2['default'];\n      }\n    });\n    var css_selector_parser2 = __toModule(require_lib());\n    var dot2 = __toModule(require_doT());\n    var emoji_regex3 = __toModule(require_emoji_regex());\n    var memoizee2 = __toModule(require_memoizee());\n    var es6_promise = __toModule(require_es6_promise());\n    var typedarray = __toModule(require_typedarray());\n    var weakmap_polyfill = __toModule(require_weakmap_polyfill());\n    if (!('Promise' in window)) {\n      es6_promise['default'].polyfill();\n    }\n    if (!('Uint32Array' in window)) {\n      window.Uint32Array = typedarray.Uint32Array;\n    }\n    if (window.Uint32Array) {\n      if (!('some' in window.Uint32Array.prototype)) {\n        Object.defineProperty(window.Uint32Array.prototype, 'some', {\n          value: Array.prototype.some\n        });\n      }\n      if (!('reduce' in window.Uint32Array.prototype)) {\n        Object.defineProperty(window.Uint32Array.prototype, 'reduce', {\n          value: Array.prototype.reduce\n        });\n      }\n    }\n    function cleanup(resolve, reject) {\n      resolve = resolve || function res() {};\n      reject = reject || axe.log;\n      if (!axe._audit) {\n        throw new Error('No audit configured');\n      }\n      var q = axe.utils.queue();\n      var cleanupErrors = [];\n      Object.keys(axe.plugins).forEach(function(key) {\n        q.defer(function(res) {\n          var rej = function rej2(err2) {\n            cleanupErrors.push(err2);\n            res();\n          };\n          try {\n            axe.plugins[key].cleanup(res, rej);\n          } catch (err2) {\n            rej(err2);\n          }\n        });\n      });\n      var flattenedTree = axe.utils.getFlattenedTree(document.body);\n      axe.utils.querySelectorAll(flattenedTree, 'iframe, frame').forEach(function(node) {\n        q.defer(function(res, rej) {\n          return axe.utils.sendCommandToFrame(node.actualNode, {\n            command: 'cleanup-plugin'\n          }, res, rej);\n        });\n      });\n      q.then(function(results) {\n        if (cleanupErrors.length === 0) {\n          resolve(results);\n        } else {\n          reject(cleanupErrors);\n        }\n      })['catch'](reject);\n    }\n    var cleanup_default = cleanup;\n    var reporters = {};\n    var defaultReporter;\n    function hasReporter(reporterName) {\n      return reporters.hasOwnProperty(reporterName);\n    }\n    function getReporter(reporter4) {\n      if (typeof reporter4 === 'string' && reporters[reporter4]) {\n        return reporters[reporter4];\n      }\n      if (typeof reporter4 === 'function') {\n        return reporter4;\n      }\n      return defaultReporter;\n    }\n    function addReporter(name, cb, isDefault) {\n      reporters[name] = cb;\n      if (isDefault) {\n        defaultReporter = cb;\n      }\n    }\n    function configure3(spec) {\n      var audit3;\n      audit3 = axe._audit;\n      if (!audit3) {\n        throw new Error('No audit configured');\n      }\n      if (spec.axeVersion || spec.ver) {\n        var specVersion = spec.axeVersion || spec.ver;\n        if (!/^\\d+\\.\\d+\\.\\d+(-canary)?/.test(specVersion)) {\n          throw new Error('Invalid configured version '.concat(specVersion));\n        }\n        var _specVersion$split = specVersion.split('-'), _specVersion$split2 = _slicedToArray(_specVersion$split, 2), version = _specVersion$split2[0], canary = _specVersion$split2[1];\n        var _version$split$map = version.split('.').map(Number), _version$split$map2 = _slicedToArray(_version$split$map, 3), major = _version$split$map2[0], minor = _version$split$map2[1], patch = _version$split$map2[2];\n        var _axe$version$split = axe.version.split('-'), _axe$version$split2 = _slicedToArray(_axe$version$split, 2), axeVersion = _axe$version$split2[0], axeCanary = _axe$version$split2[1];\n        var _axeVersion$split$map = axeVersion.split('.').map(Number), _axeVersion$split$map2 = _slicedToArray(_axeVersion$split$map, 3), axeMajor = _axeVersion$split$map2[0], axeMinor = _axeVersion$split$map2[1], axePatch = _axeVersion$split$map2[2];\n        if (major !== axeMajor || axeMinor < minor || axeMinor === minor && axePatch < patch || major === axeMajor && minor === axeMinor && patch === axePatch && canary && canary !== axeCanary) {\n          throw new Error('Configured version '.concat(specVersion, ' is not compatible with current axe version ').concat(axe.version));\n        }\n      }\n      if (spec.reporter && (typeof spec.reporter === 'function' || hasReporter(spec.reporter))) {\n        audit3.reporter = spec.reporter;\n      }\n      if (spec.checks) {\n        if (!Array.isArray(spec.checks)) {\n          throw new TypeError('Checks property must be an array');\n        }\n        spec.checks.forEach(function(check4) {\n          if (!check4.id) {\n            throw new TypeError('Configured check '.concat(JSON.stringify(check4), ' is invalid. Checks must be an object with at least an id property'));\n          }\n          audit3.addCheck(check4);\n        });\n      }\n      var modifiedRules = [];\n      if (spec.rules) {\n        if (!Array.isArray(spec.rules)) {\n          throw new TypeError('Rules property must be an array');\n        }\n        spec.rules.forEach(function(rule3) {\n          if (!rule3.id) {\n            throw new TypeError('Configured rule '.concat(JSON.stringify(rule3), ' is invalid. Rules must be an object with at least an id property'));\n          }\n          modifiedRules.push(rule3.id);\n          audit3.addRule(rule3);\n        });\n      }\n      if (spec.disableOtherRules) {\n        audit3.rules.forEach(function(rule3) {\n          if (modifiedRules.includes(rule3.id) === false) {\n            rule3.enabled = false;\n          }\n        });\n      }\n      if (typeof spec.branding !== 'undefined') {\n        audit3.setBranding(spec.branding);\n      } else {\n        audit3._constructHelpUrls();\n      }\n      if (spec.tagExclude) {\n        audit3.tagExclude = spec.tagExclude;\n      }\n      if (spec.locale) {\n        audit3.applyLocale(spec.locale);\n      }\n      if (spec.standards) {\n        configureStandards(spec.standards);\n      }\n      if (spec.noHtml) {\n        audit3.noHtml = true;\n      }\n      if (spec.allowedOrigins) {\n        if (!Array.isArray(spec.allowedOrigins)) {\n          throw new TypeError('Allowed origins property must be an array');\n        }\n        if (spec.allowedOrigins.includes('*')) {\n          throw new Error('\"*\" is not allowed. Use \"'.concat(constants_default.allOrigins, '\" instead'));\n        }\n        audit3.setAllowedOrigins(spec.allowedOrigins);\n      }\n    }\n    var configure_default = configure3;\n    function frameMessenger2(frameHandler) {\n      _respondable.updateMessenger(frameHandler);\n    }\n    function getRules(tags) {\n      tags = tags || [];\n      var matchingRules = !tags.length ? axe._audit.rules : axe._audit.rules.filter(function(item) {\n        return !!tags.filter(function(tag) {\n          return item.tags.indexOf(tag) !== -1;\n        }).length;\n      });\n      var ruleData = axe._audit.data.rules || {};\n      return matchingRules.map(function(matchingRule) {\n        var rd = ruleData[matchingRule.id] || {};\n        return {\n          ruleId: matchingRule.id,\n          description: rd.description,\n          help: rd.help,\n          helpUrl: rd.helpUrl,\n          tags: matchingRule.tags\n        };\n      });\n    }\n    var get_rules_default = getRules;\n    function teardown() {\n      if (cache_default.get('globalDocumentSet')) {\n        document = null;\n      }\n      if (cache_default.get('globalWindowSet')) {\n        window = null;\n      }\n      axe._memoizedFns.forEach(function(fn) {\n        return fn.clear();\n      });\n      cache_default.clear();\n      axe._tree = void 0;\n      axe._selectorData = void 0;\n      axe._selectCache = void 0;\n    }\n    var teardown_default = teardown;\n    function runRules(context3, options, resolve, reject) {\n      try {\n        context3 = new context_default(context3);\n        axe._tree = context3.flatTree;\n        axe._selectorData = _getSelectorData(context3.flatTree);\n      } catch (e) {\n        teardown_default();\n        return reject(e);\n      }\n      var q = queue_default();\n      var audit3 = axe._audit;\n      if (options.performanceTimer) {\n        performance_timer_default.auditStart();\n      }\n      if (context3.frames.length && options.iframes !== false) {\n        q.defer(function(res, rej) {\n          collect_results_from_frames_default(context3, options, 'rules', null, res, rej);\n        });\n      }\n      q.defer(function(res, rej) {\n        audit3.run(context3, options, res, rej);\n      });\n      q.then(function(data2) {\n        try {\n          if (options.performanceTimer) {\n            performance_timer_default.auditEnd();\n          }\n          var results = merge_results_default(data2.map(function(results2) {\n            return {\n              results: results2\n            };\n          }));\n          if (context3.initiator) {\n            results = audit3.after(results, options);\n            results.forEach(publish_metadata_default);\n            results = results.map(finalize_result_default);\n          }\n          try {\n            resolve(results, teardown_default);\n          } catch (e) {\n            teardown_default();\n            log_default(e);\n          }\n        } catch (e) {\n          teardown_default();\n          reject(e);\n        }\n      })['catch'](function(e) {\n        teardown_default();\n        reject(e);\n      });\n    }\n    var run_rules_default = runRules;\n    function runCommand(data2, keepalive, callback) {\n      var resolve = callback;\n      var reject = function reject2(err2) {\n        if (err2 instanceof Error === false) {\n          err2 = new Error(err2);\n        }\n        callback(err2);\n      };\n      var context3 = data2 && data2.context || {};\n      if (context3.hasOwnProperty('include') && !context3.include.length) {\n        context3.include = [ document ];\n      }\n      var options = data2 && data2.options || {};\n      switch (data2.command) {\n       case 'rules':\n        return run_rules_default(context3, options, function(results, cleanup5) {\n          resolve(results);\n          cleanup5();\n        }, reject);\n\n       case 'cleanup-plugin':\n        return cleanup_default(resolve, reject);\n\n       default:\n        if (axe._audit && axe._audit.commands && axe._audit.commands[data2.command]) {\n          return axe._audit.commands[data2.command](data2, callback);\n        }\n      }\n    }\n    if (window.top !== window) {\n      _respondable.subscribe('axe.start', runCommand);\n      _respondable.subscribe('axe.ping', function(data2, keepalive, respond) {\n        respond({\n          axe: true\n        });\n      });\n    }\n    function load(audit3) {\n      axe._audit = new audit_default(audit3);\n    }\n    var load_default = load;\n    function Plugin(spec) {\n      this._run = spec.run;\n      this._collect = spec.collect;\n      this._registry = {};\n      spec.commands.forEach(function(command) {\n        axe._audit.registerCommand(command);\n      });\n    }\n    Plugin.prototype.run = function run3() {\n      return this._run.apply(this, arguments);\n    };\n    Plugin.prototype.collect = function collect() {\n      return this._collect.apply(this, arguments);\n    };\n    Plugin.prototype.cleanup = function cleanup3(done) {\n      var q = axe.utils.queue();\n      var that = this;\n      Object.keys(this._registry).forEach(function(key) {\n        q.defer(function(_done) {\n          that._registry[key].cleanup(_done);\n        });\n      });\n      q.then(done);\n    };\n    Plugin.prototype.add = function add(impl) {\n      this._registry[impl.id] = impl;\n    };\n    function registerPlugin(plugin) {\n      axe.plugins[plugin.id] = new Plugin(plugin);\n    }\n    var plugins_default = registerPlugin;\n    function reset() {\n      var audit3 = axe._audit;\n      if (!audit3) {\n        throw new Error('No audit configured');\n      }\n      audit3.resetRulesAndChecks();\n      resetStandards();\n    }\n    var reset_default = reset;\n    function runVirtualRule(ruleId, vNode) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      options.reporter = options.reporter || axe._audit.reporter || 'v1';\n      axe._selectorData = {};\n      if (!(vNode instanceof abstract_virtual_node_default)) {\n        vNode = new serial_virtual_node_default(vNode);\n      }\n      var rule3 = get_rule_default(ruleId);\n      if (!rule3) {\n        throw new Error('unknown rule `' + ruleId + '`');\n      }\n      rule3 = Object.create(rule3, {\n        excludeHidden: {\n          value: false\n        }\n      });\n      var context3 = {\n        initiator: true,\n        include: [ vNode ]\n      };\n      var rawResults = rule3.runSync(context3, options);\n      publish_metadata_default(rawResults);\n      finalize_result_default(rawResults);\n      var results = aggregate_result_default([ rawResults ]);\n      results.violations.forEach(function(result) {\n        return result.nodes.forEach(function(nodeResult) {\n          nodeResult.failureSummary = failure_summary_default(nodeResult);\n        });\n      });\n      return _extends({}, get_environment_data_default(), results, {\n        toolOptions: options\n      });\n    }\n    var run_virtual_rule_default = runVirtualRule;\n    function isContext(potential) {\n      switch (true) {\n       case typeof potential === 'string':\n       case Array.isArray(potential):\n       case window.Node && potential instanceof window.Node:\n       case window.NodeList && potential instanceof window.NodeList:\n        return true;\n\n       case _typeof(potential) !== 'object':\n        return false;\n\n       case potential.include !== void 0:\n       case potential.exclude !== void 0:\n       case typeof potential.length === 'number':\n        return true;\n\n       default:\n        return false;\n      }\n    }\n    var noop2 = function noop3() {};\n    function normalizeRunParams(context3, options, callback) {\n      var typeErr = new TypeError('axe.run arguments are invalid');\n      if (!isContext(context3)) {\n        if (callback !== void 0) {\n          throw typeErr;\n        }\n        callback = options;\n        options = context3;\n        context3 = document;\n      }\n      if (_typeof(options) !== 'object') {\n        if (callback !== void 0) {\n          throw typeErr;\n        }\n        callback = options;\n        options = {};\n      }\n      if (typeof callback !== 'function' && callback !== void 0) {\n        throw typeErr;\n      }\n      return {\n        context: context3,\n        options: options,\n        callback: callback || noop2\n      };\n    }\n    function run4(context3, options, callback) {\n      if (!axe._audit) {\n        throw new Error('No audit configured');\n      }\n      var hasWindow = window && 'Node' in window && 'NodeList' in window;\n      var hasDoc = !!document;\n      if (!hasWindow || !hasDoc) {\n        if (!context3 || !context3.ownerDocument) {\n          throw new Error('Required \"window\" or \"document\" globals not defined and cannot be deduced from the context. Either set the globals before running or pass in a valid Element.');\n        }\n        if (!hasDoc) {\n          cache_default.set('globalDocumentSet', true);\n          document = context3.ownerDocument;\n        }\n        if (!hasWindow) {\n          cache_default.set('globalWindowSet', true);\n          window = document.defaultView;\n        }\n      }\n      var args = normalizeRunParams(context3, options, callback);\n      context3 = args.context;\n      options = args.options;\n      callback = args.callback;\n      options.reporter = options.reporter || axe._audit.reporter || 'v1';\n      if (options.performanceTimer) {\n        axe.utils.performanceTimer.start();\n      }\n      var p;\n      var reject = noop2;\n      var resolve = noop2;\n      if (typeof Promise === 'function' && callback === noop2) {\n        p = new Promise(function(_resolve, _reject) {\n          reject = _reject;\n          resolve = _resolve;\n        });\n      }\n      if (axe._running) {\n        var err2 = 'Axe is already running. Use `await axe.run()` to wait for the previous run to finish before starting a new run.';\n        callback(err2);\n        reject(err2);\n        return p;\n      }\n      axe._running = true;\n      axe._runRules(context3, options, function(rawResults, cleanup5) {\n        var respond = function respond(results) {\n          axe._running = false;\n          cleanup5();\n          try {\n            callback(null, results);\n          } catch (e) {\n            axe.log(e);\n          }\n          resolve(results);\n        };\n        if (options.performanceTimer) {\n          axe.utils.performanceTimer.end();\n        }\n        try {\n          var reporter4 = getReporter(options.reporter);\n          var results = reporter4(rawResults, options, respond);\n          if (results !== void 0) {\n            respond(results);\n          }\n        } catch (err2) {\n          axe._running = false;\n          cleanup5();\n          callback(err2);\n          reject(err2);\n        }\n      }, function(err2) {\n        axe._running = false;\n        callback(err2);\n        reject(err2);\n      });\n      return p;\n    }\n    var run_default = run4;\n    function setup(node) {\n      if (axe._tree) {\n        throw new Error('Axe is already setup. Call `axe.teardown()` before calling `axe.setup` again.');\n      }\n      axe._tree = get_flattened_tree_default(node);\n      axe._selectorData = _getSelectorData(axe._tree);\n      return axe._tree[0];\n    }\n    var setup_default = setup;\n    var naReporter = function naReporter(results, options, callback) {\n      console.warn('\"na\" reporter will be deprecated in axe v4.0. Use the \"v2\" reporter instead.');\n      if (typeof options === 'function') {\n        callback = options;\n        options = {};\n      }\n      var out = process_aggregate_default(results, options);\n      callback(_extends({}, get_environment_data_default(), {\n        toolOptions: options,\n        violations: out.violations,\n        passes: out.passes,\n        incomplete: out.incomplete,\n        inapplicable: out.inapplicable\n      }));\n    };\n    var na_default = naReporter;\n    var noPassesReporter = function noPassesReporter(results, options, callback) {\n      if (typeof options === 'function') {\n        callback = options;\n        options = {};\n      }\n      options.resultTypes = [ 'violations' ];\n      var out = process_aggregate_default(results, options);\n      callback(_extends({}, get_environment_data_default(), {\n        toolOptions: options,\n        violations: out.violations\n      }));\n    };\n    var no_passes_default = noPassesReporter;\n    var rawReporter = function rawReporter(results, options, callback) {\n      if (typeof options === 'function') {\n        callback = options;\n        options = {};\n      }\n      if (!results || !Array.isArray(results)) {\n        return callback(results);\n      }\n      var transformedResults = results.map(function(result) {\n        var transformedResult = _extends({}, result);\n        var types = [ 'passes', 'violations', 'incomplete', 'inapplicable' ];\n        for (var _i30 = 0, _types = types; _i30 < _types.length; _i30++) {\n          var type = _types[_i30];\n          if (transformedResult[type] && Array.isArray(transformedResult[type])) {\n            transformedResult[type] = transformedResult[type].map(function(typeResult) {\n              return _extends({}, typeResult, {\n                node: typeResult.node.toJSON()\n              });\n            });\n          }\n        }\n        return transformedResult;\n      });\n      callback(transformedResults);\n    };\n    var raw_default = rawReporter;\n    var rawEnvReporter = function rawEnvReporter(results, options, callback) {\n      if (typeof options === 'function') {\n        callback = options;\n        options = {};\n      }\n      function rawCallback(raw3) {\n        var env = get_environment_data_default();\n        callback({\n          raw: raw3,\n          env: env\n        });\n      }\n      raw_default(results, options, rawCallback);\n    };\n    var raw_env_default = rawEnvReporter;\n    var v1Reporter = function v1Reporter(results, options, callback) {\n      if (typeof options === 'function') {\n        callback = options;\n        options = {};\n      }\n      var out = process_aggregate_default(results, options);\n      var addFailureSummaries = function addFailureSummaries(result) {\n        result.nodes.forEach(function(nodeResult) {\n          nodeResult.failureSummary = failure_summary_default(nodeResult);\n        });\n      };\n      out.incomplete.forEach(addFailureSummaries);\n      out.violations.forEach(addFailureSummaries);\n      callback(_extends({}, get_environment_data_default(), {\n        toolOptions: options,\n        violations: out.violations,\n        passes: out.passes,\n        incomplete: out.incomplete,\n        inapplicable: out.inapplicable\n      }));\n    };\n    var v1_default = v1Reporter;\n    var v2Reporter = function v2Reporter(results, options, callback) {\n      if (typeof options === 'function') {\n        callback = options;\n        options = {};\n      }\n      var out = process_aggregate_default(results, options);\n      callback(_extends({}, get_environment_data_default(), {\n        toolOptions: options,\n        violations: out.violations,\n        passes: out.passes,\n        incomplete: out.incomplete,\n        inapplicable: out.inapplicable\n      }));\n    };\n    var v2_default = v2Reporter;\n    axe.constants = constants_default;\n    axe.log = log_default;\n    axe.AbstractVirtualNode = abstract_virtual_node_default;\n    axe.SerialVirtualNode = serial_virtual_node_default;\n    axe.VirtualNode = virtual_node_default;\n    axe._cache = cache_default;\n    axe._thisWillBeDeletedDoNotUse = axe._thisWillBeDeletedDoNotUse || {};\n    axe._thisWillBeDeletedDoNotUse.base = {\n      Audit: audit_default,\n      CheckResult: check_result_default,\n      Check: check_default,\n      Context: context_default,\n      RuleResult: rule_result_default,\n      Rule: rule_default,\n      metadataFunctionMap: metadata_function_map_default\n    };\n    axe.imports = imports_exports;\n    axe.cleanup = cleanup_default;\n    axe.configure = configure_default;\n    axe.frameMessenger = frameMessenger2;\n    axe.getRules = get_rules_default;\n    axe._load = load_default;\n    axe.plugins = {};\n    axe.registerPlugin = plugins_default;\n    axe.hasReporter = hasReporter;\n    axe.getReporter = getReporter;\n    axe.addReporter = addReporter;\n    axe.reset = reset_default;\n    axe._runRules = run_rules_default;\n    axe.runVirtualRule = run_virtual_rule_default;\n    axe.run = run_default;\n    axe.setup = setup_default;\n    axe.teardown = teardown_default;\n    axe.commons = commons_exports;\n    axe.utils = utils_exports;\n    axe.addReporter('na', na_default);\n    axe.addReporter('no-passes', no_passes_default);\n    axe.addReporter('rawEnv', raw_env_default);\n    axe.addReporter('raw', raw_default);\n    axe.addReporter('v1', v1_default);\n    axe.addReporter('v2', v2_default, true);\n  })();\n  'use strict';\n  axe._load({\n    lang: 'en',\n    data: {\n      rules: {\n        accesskeys: {\n          description: 'Ensures every accesskey attribute value is unique',\n          help: 'accesskey attribute value should be unique'\n        },\n        'area-alt': {\n          description: 'Ensures <area> elements of image maps have alternate text',\n          help: 'Active <area> elements must have alternate text'\n        },\n        'aria-allowed-attr': {\n          description: 'Ensures ARIA attributes are allowed for an element\\'s role',\n          help: 'Elements must only use allowed ARIA attributes'\n        },\n        'aria-allowed-role': {\n          description: 'Ensures role attribute has an appropriate value for the element',\n          help: 'ARIA role should be appropriate for the element'\n        },\n        'aria-command-name': {\n          description: 'Ensures every ARIA button, link and menuitem has an accessible name',\n          help: 'ARIA commands must have an accessible name'\n        },\n        'aria-dialog-name': {\n          description: 'Ensures every ARIA dialog and alertdialog node has an accessible name',\n          help: 'ARIA dialog and alertdialog nodes should have an accessible name'\n        },\n        'aria-hidden-body': {\n          description: 'Ensures aria-hidden=\\'true\\' is not present on the document body.',\n          help: 'aria-hidden=\\'true\\' must not be present on the document body'\n        },\n        'aria-hidden-focus': {\n          description: 'Ensures aria-hidden elements do not contain focusable elements',\n          help: 'ARIA hidden element must not contain focusable elements'\n        },\n        'aria-input-field-name': {\n          description: 'Ensures every ARIA input field has an accessible name',\n          help: 'ARIA input fields must have an accessible name'\n        },\n        'aria-meter-name': {\n          description: 'Ensures every ARIA meter node has an accessible name',\n          help: 'ARIA meter nodes must have an accessible name'\n        },\n        'aria-progressbar-name': {\n          description: 'Ensures every ARIA progressbar node has an accessible name',\n          help: 'ARIA progressbar nodes must have an accessible name'\n        },\n        'aria-required-attr': {\n          description: 'Ensures elements with ARIA roles have all required ARIA attributes',\n          help: 'Required ARIA attributes must be provided'\n        },\n        'aria-required-children': {\n          description: 'Ensures elements with an ARIA role that require child roles contain them',\n          help: 'Certain ARIA roles must contain particular children'\n        },\n        'aria-required-parent': {\n          description: 'Ensures elements with an ARIA role that require parent roles are contained by them',\n          help: 'Certain ARIA roles must be contained by particular parents'\n        },\n        'aria-roledescription': {\n          description: 'Ensure aria-roledescription is only used on elements with an implicit or explicit role',\n          help: 'Use aria-roledescription on elements with a semantic role'\n        },\n        'aria-roles': {\n          description: 'Ensures all elements with a role attribute use a valid value',\n          help: 'ARIA roles used must conform to valid values'\n        },\n        'aria-text': {\n          description: 'Ensures \"role=text\" is used on elements with no focusable descendants',\n          help: '\"role=text\" should have no focusable descendants'\n        },\n        'aria-toggle-field-name': {\n          description: 'Ensures every ARIA toggle field has an accessible name',\n          help: 'ARIA toggle fields have an accessible name'\n        },\n        'aria-tooltip-name': {\n          description: 'Ensures every ARIA tooltip node has an accessible name',\n          help: 'ARIA tooltip nodes must have an accessible name'\n        },\n        'aria-treeitem-name': {\n          description: 'Ensures every ARIA treeitem node has an accessible name',\n          help: 'ARIA treeitem nodes should have an accessible name'\n        },\n        'aria-valid-attr-value': {\n          description: 'Ensures all ARIA attributes have valid values',\n          help: 'ARIA attributes must conform to valid values'\n        },\n        'aria-valid-attr': {\n          description: 'Ensures attributes that begin with aria- are valid ARIA attributes',\n          help: 'ARIA attributes must conform to valid names'\n        },\n        'audio-caption': {\n          description: 'Ensures <audio> elements have captions',\n          help: '<audio> elements must have a captions track'\n        },\n        'autocomplete-valid': {\n          description: 'Ensure the autocomplete attribute is correct and suitable for the form field',\n          help: 'autocomplete attribute must be used correctly'\n        },\n        'avoid-inline-spacing': {\n          description: 'Ensure that text spacing set through style attributes can be adjusted with custom stylesheets',\n          help: 'Inline text spacing must be adjustable with custom stylesheets'\n        },\n        blink: {\n          description: 'Ensures <blink> elements are not used',\n          help: '<blink> elements are deprecated and must not be used'\n        },\n        'button-name': {\n          description: 'Ensures buttons have discernible text',\n          help: 'Buttons must have discernible text'\n        },\n        bypass: {\n          description: 'Ensures each page has at least one mechanism for a user to bypass navigation and jump straight to the content',\n          help: 'Page must have means to bypass repeated blocks'\n        },\n        'color-contrast': {\n          description: 'Ensures the contrast between foreground and background colors meets WCAG 2 AA contrast ratio thresholds',\n          help: 'Elements must have sufficient color contrast'\n        },\n        'css-orientation-lock': {\n          description: 'Ensures content is not locked to any specific display orientation, and the content is operable in all display orientations',\n          help: 'CSS Media queries are not used to lock display orientation'\n        },\n        'definition-list': {\n          description: 'Ensures <dl> elements are structured correctly',\n          help: '<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements'\n        },\n        dlitem: {\n          description: 'Ensures <dt> and <dd> elements are contained by a <dl>',\n          help: '<dt> and <dd> elements must be contained by a <dl>'\n        },\n        'document-title': {\n          description: 'Ensures each HTML document contains a non-empty <title> element',\n          help: 'Documents must have <title> element to aid in navigation'\n        },\n        'duplicate-id-active': {\n          description: 'Ensures every id attribute value of active elements is unique',\n          help: 'IDs of active elements must be unique'\n        },\n        'duplicate-id-aria': {\n          description: 'Ensures every id attribute value used in ARIA and in labels is unique',\n          help: 'IDs used in ARIA and labels must be unique'\n        },\n        'duplicate-id': {\n          description: 'Ensures every id attribute value is unique',\n          help: 'id attribute value must be unique'\n        },\n        'empty-heading': {\n          description: 'Ensures headings have discernible text',\n          help: 'Headings should not be empty'\n        },\n        'empty-table-header': {\n          description: 'Ensures table headers have discernible text',\n          help: 'Table header text must not be empty'\n        },\n        'focus-order-semantics': {\n          description: 'Ensures elements in the focus order have an appropriate role',\n          help: 'Elements in the focus order need a role appropriate for interactive content'\n        },\n        'form-field-multiple-labels': {\n          description: 'Ensures form field does not have multiple label elements',\n          help: 'Form field must not have multiple label elements'\n        },\n        'frame-focusable-content': {\n          description: 'Ensures <frame> and <iframe> elements with focusable content do not have tabindex=-1',\n          help: 'Frames with focusable content must not have tabindex=-1'\n        },\n        'frame-tested': {\n          description: 'Ensures <iframe> and <frame> elements contain the axe-core script',\n          help: 'Frames should be tested with axe-core'\n        },\n        'frame-title-unique': {\n          description: 'Ensures <iframe> and <frame> elements contain a unique title attribute',\n          help: 'Frames should have a unique title attribute'\n        },\n        'frame-title': {\n          description: 'Ensures <iframe> and <frame> elements have an accessible name',\n          help: 'Frames must have an accessible name'\n        },\n        'heading-order': {\n          description: 'Ensures the order of headings is semantically correct',\n          help: 'Heading levels should only increase by one'\n        },\n        'hidden-content': {\n          description: 'Informs users about hidden content.',\n          help: 'Hidden content on the page cannot be analyzed'\n        },\n        'html-has-lang': {\n          description: 'Ensures every HTML document has a lang attribute',\n          help: '<html> element must have a lang attribute'\n        },\n        'html-lang-valid': {\n          description: 'Ensures the lang attribute of the <html> element has a valid value',\n          help: '<html> element must have a valid value for the lang attribute'\n        },\n        'html-xml-lang-mismatch': {\n          description: 'Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page',\n          help: 'HTML elements with lang and xml:lang must have the same base language'\n        },\n        'identical-links-same-purpose': {\n          description: 'Ensure that links with the same accessible name serve a similar purpose',\n          help: 'Links with the same name have a similar purpose'\n        },\n        'image-alt': {\n          description: 'Ensures <img> elements have alternate text or a role of none or presentation',\n          help: 'Images must have alternate text'\n        },\n        'image-redundant-alt': {\n          description: 'Ensure image alternative is not repeated as text',\n          help: 'Alternative text of images should not be repeated as text'\n        },\n        'input-button-name': {\n          description: 'Ensures input buttons have discernible text',\n          help: 'Input buttons must have discernible text'\n        },\n        'input-image-alt': {\n          description: 'Ensures <input type=\"image\"> elements have alternate text',\n          help: 'Image buttons must have alternate text'\n        },\n        'label-content-name-mismatch': {\n          description: 'Ensures that elements labelled through their content must have their visible text as part of their accessible name',\n          help: 'Elements must have their visible text as part of their accessible name'\n        },\n        'label-title-only': {\n          description: 'Ensures that every form element is not solely labeled using the title or aria-describedby attributes',\n          help: 'Form elements should have a visible label'\n        },\n        label: {\n          description: 'Ensures every form element has a label',\n          help: 'Form elements must have labels'\n        },\n        'landmark-banner-is-top-level': {\n          description: 'Ensures the banner landmark is at top level',\n          help: 'Banner landmark should not be contained in another landmark'\n        },\n        'landmark-complementary-is-top-level': {\n          description: 'Ensures the complementary landmark or aside is at top level',\n          help: 'Aside should not be contained in another landmark'\n        },\n        'landmark-contentinfo-is-top-level': {\n          description: 'Ensures the contentinfo landmark is at top level',\n          help: 'Contentinfo landmark should not be contained in another landmark'\n        },\n        'landmark-main-is-top-level': {\n          description: 'Ensures the main landmark is at top level',\n          help: 'Main landmark should not be contained in another landmark'\n        },\n        'landmark-no-duplicate-banner': {\n          description: 'Ensures the document has at most one banner landmark',\n          help: 'Document should not have more than one banner landmark'\n        },\n        'landmark-no-duplicate-contentinfo': {\n          description: 'Ensures the document has at most one contentinfo landmark',\n          help: 'Document should not have more than one contentinfo landmark'\n        },\n        'landmark-no-duplicate-main': {\n          description: 'Ensures the document has at most one main landmark',\n          help: 'Document should not have more than one main landmark'\n        },\n        'landmark-one-main': {\n          description: 'Ensures the document has a main landmark',\n          help: 'Document should have one main landmark'\n        },\n        'landmark-unique': {\n          help: 'Ensures landmarks are unique',\n          description: 'Landmarks should have a unique role or role/label/title (i.e. accessible name) combination'\n        },\n        'link-in-text-block': {\n          description: 'Links can be distinguished without relying on color',\n          help: 'Links must be distinguished from surrounding text in a way that does not rely on color'\n        },\n        'link-name': {\n          description: 'Ensures links have discernible text',\n          help: 'Links must have discernible text'\n        },\n        list: {\n          description: 'Ensures that lists are structured correctly',\n          help: '<ul> and <ol> must only directly contain <li>, <script> or <template> elements'\n        },\n        listitem: {\n          description: 'Ensures <li> elements are used semantically',\n          help: '<li> elements must be contained in a <ul> or <ol>'\n        },\n        marquee: {\n          description: 'Ensures <marquee> elements are not used',\n          help: '<marquee> elements are deprecated and must not be used'\n        },\n        'meta-refresh': {\n          description: 'Ensures <meta http-equiv=\"refresh\"> is not used',\n          help: 'Timed refresh must not exist'\n        },\n        'meta-viewport-large': {\n          description: 'Ensures <meta name=\"viewport\"> can scale a significant amount',\n          help: 'Users should be able to zoom and scale the text up to 500%'\n        },\n        'meta-viewport': {\n          description: 'Ensures <meta name=\"viewport\"> does not disable text scaling and zooming',\n          help: 'Zooming and scaling should not be disabled'\n        },\n        'nested-interactive': {\n          description: 'Nested interactive controls are not announced by screen readers',\n          help: 'Ensure interactive controls are not nested'\n        },\n        'no-autoplay-audio': {\n          description: 'Ensures <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio',\n          help: '<video> or <audio> elements do not autoplay audio'\n        },\n        'object-alt': {\n          description: 'Ensures <object> elements have alternate text',\n          help: '<object> elements must have alternate text'\n        },\n        'p-as-heading': {\n          description: 'Ensure p elements are not used to style headings',\n          help: 'Bold, italic text and font-size are not used to style p elements as a heading'\n        },\n        'page-has-heading-one': {\n          description: 'Ensure that the page, or at least one of its frames contains a level-one heading',\n          help: 'Page should contain a level-one heading'\n        },\n        'presentation-role-conflict': {\n          description: 'Flags elements whose role is none or presentation and which cause the role conflict resolution to trigger.',\n          help: 'Elements of role none or presentation should be flagged'\n        },\n        region: {\n          description: 'Ensures all page content is contained by landmarks',\n          help: 'All page content should be contained by landmarks'\n        },\n        'role-img-alt': {\n          description: 'Ensures [role=\\'img\\'] elements have alternate text',\n          help: '[role=\\'img\\'] elements have an alternative text'\n        },\n        'scope-attr-valid': {\n          description: 'Ensures the scope attribute is used correctly on tables',\n          help: 'scope attribute should be used correctly'\n        },\n        'scrollable-region-focusable': {\n          description: 'Elements that have scrollable content must be accessible by keyboard',\n          help: 'Ensure that scrollable region has keyboard access'\n        },\n        'select-name': {\n          description: 'Ensures select element has an accessible name',\n          help: 'Select element must have an accessible name'\n        },\n        'server-side-image-map': {\n          description: 'Ensures that server-side image maps are not used',\n          help: 'Server-side image maps must not be used'\n        },\n        'skip-link': {\n          description: 'Ensure all skip links have a focusable target',\n          help: 'The skip-link target should exist and be focusable'\n        },\n        'svg-img-alt': {\n          description: 'Ensures svg elements with an img, graphics-document or graphics-symbol role have an accessible text',\n          help: 'svg elements with an img role have an alternative text'\n        },\n        tabindex: {\n          description: 'Ensures tabindex attribute values are not greater than 0',\n          help: 'Elements should not have tabindex greater than zero'\n        },\n        'table-duplicate-name': {\n          description: 'Ensure that tables do not have the same summary and caption',\n          help: 'The <caption> element should not contain the same text as the summary attribute'\n        },\n        'table-fake-caption': {\n          description: 'Ensure that tables with a caption use the <caption> element.',\n          help: 'Data or header cells must not be used to give caption to a data table.'\n        },\n        'td-has-header': {\n          description: 'Ensure that each non-empty data cell in a large table has one or more table headers',\n          help: 'All non-empty td element in table larger than 3 by 3 must have an associated table header'\n        },\n        'td-headers-attr': {\n          description: 'Ensure that each cell in a table using the headers refers to another cell in that table',\n          help: 'All cells in a table element that use the headers attribute must only refer to other cells of that same table'\n        },\n        'th-has-data-cells': {\n          description: 'Ensure that each table header in a data table refers to data cells',\n          help: 'All th elements and elements with role=columnheader/rowheader must have data cells they describe'\n        },\n        'valid-lang': {\n          description: 'Ensures lang attributes have valid values',\n          help: 'lang attribute must have a valid value'\n        },\n        'video-caption': {\n          description: 'Ensures <video> elements have captions',\n          help: '<video> elements must have captions'\n        }\n      },\n      checks: {\n        abstractrole: {\n          impact: 'serious',\n          messages: {\n            pass: 'Abstract roles are not used',\n            fail: {\n              singular: 'Abstract role cannot be directly used: ${data.values}',\n              plural: 'Abstract roles cannot be directly used: ${data.values}'\n            }\n          }\n        },\n        'aria-allowed-attr': {\n          impact: 'critical',\n          messages: {\n            pass: 'ARIA attributes are used correctly for the defined role',\n            fail: {\n              singular: 'ARIA attribute is not allowed: ${data.values}',\n              plural: 'ARIA attributes are not allowed: ${data.values}'\n            }\n          }\n        },\n        'aria-allowed-role': {\n          impact: 'minor',\n          messages: {\n            pass: 'ARIA role is allowed for given element',\n            fail: {\n              singular: 'ARIA role ${data.values} is not allowed for given element',\n              plural: 'ARIA roles ${data.values} are not allowed for given element'\n            },\n            incomplete: {\n              singular: 'ARIA role ${data.values} must be removed when the element is made visible, as it is not allowed for the element',\n              plural: 'ARIA roles ${data.values} must be removed when the element is made visible, as they are not allowed for the element'\n            }\n          }\n        },\n        'aria-errormessage': {\n          impact: 'critical',\n          messages: {\n            pass: 'aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique',\n            fail: {\n              singular: 'aria-errormessage value `${data.values}` must use a technique to announce the message (e.g., aria-live, aria-describedby, role=alert, etc.)',\n              plural: 'aria-errormessage values `${data.values}` must use a technique to announce the message (e.g., aria-live, aria-describedby, role=alert, etc.)'\n            },\n            incomplete: {\n              singular: 'ensure aria-errormessage value `${data.values}` references an existing element',\n              plural: 'ensure aria-errormessage values `${data.values}` reference existing elements'\n            }\n          }\n        },\n        'aria-hidden-body': {\n          impact: 'critical',\n          messages: {\n            pass: 'No aria-hidden attribute is present on document body',\n            fail: 'aria-hidden=true should not be present on the document body'\n          }\n        },\n        'aria-prohibited-attr': {\n          impact: 'serious',\n          messages: {\n            pass: 'ARIA attribute is allowed',\n            fail: 'ARIA attribute cannot be used, add a role attribute or use a different element: ${data.values}',\n            incomplete: 'ARIA attribute is not well supported on the element and the text content will be used instead: ${data.values}'\n          }\n        },\n        'aria-required-attr': {\n          impact: 'critical',\n          messages: {\n            pass: 'All required ARIA attributes are present',\n            fail: {\n              singular: 'Required ARIA attribute not present: ${data.values}',\n              plural: 'Required ARIA attributes not present: ${data.values}'\n            }\n          }\n        },\n        'aria-required-children': {\n          impact: 'critical',\n          messages: {\n            pass: 'Required ARIA children are present',\n            fail: {\n              singular: 'Required ARIA child role not present: ${data.values}',\n              plural: 'Required ARIA children role not present: ${data.values}'\n            },\n            incomplete: {\n              singular: 'Expecting ARIA child role to be added: ${data.values}',\n              plural: 'Expecting ARIA children role to be added: ${data.values}'\n            }\n          }\n        },\n        'aria-required-parent': {\n          impact: 'critical',\n          messages: {\n            pass: 'Required ARIA parent role present',\n            fail: {\n              singular: 'Required ARIA parent role not present: ${data.values}',\n              plural: 'Required ARIA parents role not present: ${data.values}'\n            }\n          }\n        },\n        'aria-roledescription': {\n          impact: 'serious',\n          messages: {\n            pass: 'aria-roledescription used on a supported semantic role',\n            incomplete: 'Check that the aria-roledescription is announced by supported screen readers',\n            fail: 'Give the element a role that supports aria-roledescription'\n          }\n        },\n        'aria-unsupported-attr': {\n          impact: 'critical',\n          messages: {\n            pass: 'ARIA attribute is supported',\n            fail: 'ARIA attribute is not widely supported in screen readers and assistive technologies: ${data.values}'\n          }\n        },\n        'aria-valid-attr-value': {\n          impact: 'critical',\n          messages: {\n            pass: 'ARIA attribute values are valid',\n            fail: {\n              singular: 'Invalid ARIA attribute value: ${data.values}',\n              plural: 'Invalid ARIA attribute values: ${data.values}'\n            },\n            incomplete: {\n              noId: 'ARIA attribute element ID does not exist on the page: ${data.needsReview}',\n              ariaCurrent: 'ARIA attribute value is invalid and will be treated as \"aria-current=true\": ${data.needsReview}'\n            }\n          }\n        },\n        'aria-valid-attr': {\n          impact: 'critical',\n          messages: {\n            pass: 'ARIA attribute name is valid',\n            fail: {\n              singular: 'Invalid ARIA attribute name: ${data.values}',\n              plural: 'Invalid ARIA attribute names: ${data.values}'\n            }\n          }\n        },\n        fallbackrole: {\n          impact: 'serious',\n          messages: {\n            pass: 'Only one role value used',\n            fail: 'Use only one role value, since fallback roles are not supported in older browsers'\n          }\n        },\n        'has-global-aria-attribute': {\n          impact: 'minor',\n          messages: {\n            pass: {\n              singular: 'Element has global ARIA attribute: ${data.values}',\n              plural: 'Element has global ARIA attributes: ${data.values}'\n            },\n            fail: 'Element does not have global ARIA attribute'\n          }\n        },\n        'has-widget-role': {\n          impact: 'minor',\n          messages: {\n            pass: 'Element has a widget role.',\n            fail: 'Element does not have a widget role.'\n          }\n        },\n        invalidrole: {\n          impact: 'critical',\n          messages: {\n            pass: 'ARIA role is valid',\n            fail: {\n              singular: 'Role must be one of the valid ARIA roles: ${data.values}',\n              plural: 'Roles must be one of the valid ARIA roles: ${data.values}'\n            }\n          }\n        },\n        'is-element-focusable': {\n          impact: 'minor',\n          messages: {\n            pass: 'Element is focusable.',\n            fail: 'Element is not focusable.'\n          }\n        },\n        'no-implicit-explicit-label': {\n          impact: 'moderate',\n          messages: {\n            pass: 'There is no mismatch between a <label> and accessible name',\n            incomplete: 'Check that the <label> does not need be part of the ARIA ${data} field\\'s name'\n          }\n        },\n        unsupportedrole: {\n          impact: 'critical',\n          messages: {\n            pass: 'ARIA role is supported',\n            fail: 'The role used is not widely supported in screen readers and assistive technologies: ${data.values}'\n          }\n        },\n        'valid-scrollable-semantics': {\n          impact: 'minor',\n          messages: {\n            pass: 'Element has valid semantics for an element in the focus order.',\n            fail: 'Element has invalid semantics for an element in the focus order.'\n          }\n        },\n        'color-contrast': {\n          impact: 'serious',\n          messages: {\n            pass: 'Element has sufficient color contrast of ${data.contrastRatio}',\n            fail: 'Element has insufficient color contrast of ${data.contrastRatio} (foreground color: ${data.fgColor}, background color: ${data.bgColor}, font size: ${data.fontSize}, font weight: ${data.fontWeight}). Expected contrast ratio of ${data.expectedContrastRatio}',\n            incomplete: {\n              default: 'Unable to determine contrast ratio',\n              bgImage: 'Element\\'s background color could not be determined due to a background image',\n              bgGradient: 'Element\\'s background color could not be determined due to a background gradient',\n              imgNode: 'Element\\'s background color could not be determined because element contains an image node',\n              bgOverlap: 'Element\\'s background color could not be determined because it is overlapped by another element',\n              fgAlpha: 'Element\\'s foreground color could not be determined because of alpha transparency',\n              elmPartiallyObscured: 'Element\\'s background color could not be determined because it\\'s partially obscured by another element',\n              elmPartiallyObscuring: 'Element\\'s background color could not be determined because it partially overlaps other elements',\n              outsideViewport: 'Element\\'s background color could not be determined because it\\'s outside the viewport',\n              equalRatio: 'Element has a 1:1 contrast ratio with the background',\n              shortTextContent: 'Element content is too short to determine if it is actual text content',\n              nonBmp: 'Element content contains only non-text characters',\n              pseudoContent: 'Element\\'s background color could not be determined due to a pseudo element'\n            }\n          }\n        },\n        'link-in-text-block': {\n          impact: 'serious',\n          messages: {\n            pass: 'Links can be distinguished from surrounding text in some way other than by color',\n            fail: 'Links need to be distinguished from surrounding text in some way other than by color',\n            incomplete: {\n              default: 'Unable to determine contrast ratio',\n              bgContrast: 'Element\\'s contrast ratio could not be determined. Check for a distinct hover/focus style',\n              bgImage: 'Element\\'s contrast ratio could not be determined due to a background image',\n              bgGradient: 'Element\\'s contrast ratio could not be determined due to a background gradient',\n              imgNode: 'Element\\'s contrast ratio could not be determined because element contains an image node',\n              bgOverlap: 'Element\\'s contrast ratio could not be determined because of element overlap'\n            }\n          }\n        },\n        'autocomplete-appropriate': {\n          impact: 'serious',\n          messages: {\n            pass: 'the autocomplete value is on an appropriate element',\n            fail: 'the autocomplete value is inappropriate for this type of input'\n          }\n        },\n        'autocomplete-valid': {\n          impact: 'serious',\n          messages: {\n            pass: 'the autocomplete attribute is correctly formatted',\n            fail: 'the autocomplete attribute is incorrectly formatted'\n          }\n        },\n        accesskeys: {\n          impact: 'serious',\n          messages: {\n            pass: 'Accesskey attribute value is unique',\n            fail: 'Document has multiple elements with the same accesskey'\n          }\n        },\n        'focusable-content': {\n          impact: 'moderate',\n          messages: {\n            pass: 'Element contains focusable elements',\n            fail: 'Element should have focusable content'\n          }\n        },\n        'focusable-disabled': {\n          impact: 'serious',\n          messages: {\n            pass: 'No focusable elements contained within element',\n            fail: 'Focusable content should be disabled or be removed from the DOM'\n          }\n        },\n        'focusable-element': {\n          impact: 'moderate',\n          messages: {\n            pass: 'Element is focusable',\n            fail: 'Element should be focusable'\n          }\n        },\n        'focusable-modal-open': {\n          impact: 'serious',\n          messages: {\n            pass: 'No focusable elements while a modal is open',\n            incomplete: 'Check that focusable elements are not tabbable in the current state'\n          }\n        },\n        'focusable-no-name': {\n          impact: 'serious',\n          messages: {\n            pass: 'Element is not in tab order or has accessible text',\n            fail: 'Element is in tab order and does not have accessible text',\n            incomplete: 'Unable to determine if element has an accessible name'\n          }\n        },\n        'focusable-not-tabbable': {\n          impact: 'serious',\n          messages: {\n            pass: 'No focusable elements contained within element',\n            fail: 'Focusable content should have tabindex=\\'-1\\' or be removed from the DOM'\n          }\n        },\n        'frame-focusable-content': {\n          impact: 'serious',\n          messages: {\n            pass: 'Element does not have focusable descendants',\n            fail: 'Element has focusable descendants',\n            incomplete: 'Could not determine if element has descendants'\n          }\n        },\n        'landmark-is-top-level': {\n          impact: 'moderate',\n          messages: {\n            pass: 'The ${data.role} landmark is at the top level.',\n            fail: 'The ${data.role} landmark is contained in another landmark.'\n          }\n        },\n        'no-focusable-content': {\n          impact: 'serious',\n          messages: {\n            pass: 'Element does not have focusable descendants',\n            fail: 'Element has focusable descendants',\n            incomplete: 'Could not determine if element has descendants'\n          }\n        },\n        'page-has-heading-one': {\n          impact: 'moderate',\n          messages: {\n            pass: 'Page has at least one level-one heading',\n            fail: 'Page must have a level-one heading'\n          }\n        },\n        'page-has-main': {\n          impact: 'moderate',\n          messages: {\n            pass: 'Document has at least one main landmark',\n            fail: 'Document does not have a main landmark'\n          }\n        },\n        'page-no-duplicate-banner': {\n          impact: 'moderate',\n          messages: {\n            pass: 'Document does not have more than one banner landmark',\n            fail: 'Document has more than one banner landmark'\n          }\n        },\n        'page-no-duplicate-contentinfo': {\n          impact: 'moderate',\n          messages: {\n            pass: 'Document does not have more than one contentinfo landmark',\n            fail: 'Document has more than one contentinfo landmark'\n          }\n        },\n        'page-no-duplicate-main': {\n          impact: 'moderate',\n          messages: {\n            pass: 'Document does not have more than one main landmark',\n            fail: 'Document has more than one main landmark'\n          }\n        },\n        tabindex: {\n          impact: 'serious',\n          messages: {\n            pass: 'Element does not have a tabindex greater than 0',\n            fail: 'Element has a tabindex greater than 0'\n          }\n        },\n        'alt-space-value': {\n          impact: 'critical',\n          messages: {\n            pass: 'Element has a valid alt attribute value',\n            fail: 'Element has an alt attribute containing only a space character, which is not ignored by all screen readers'\n          }\n        },\n        'duplicate-img-label': {\n          impact: 'minor',\n          messages: {\n            pass: 'Element does not duplicate existing text in <img> alt text',\n            fail: 'Element contains <img> element with alt text that duplicates existing text'\n          }\n        },\n        'explicit-label': {\n          impact: 'critical',\n          messages: {\n            pass: 'Form element has an explicit <label>',\n            fail: 'Form element does not have an explicit <label>',\n            incomplete: 'Unable to determine if form element has an explicit <label>'\n          }\n        },\n        'help-same-as-label': {\n          impact: 'minor',\n          messages: {\n            pass: 'Help text (title or aria-describedby) does not duplicate label text',\n            fail: 'Help text (title or aria-describedby) text is the same as the label text'\n          }\n        },\n        'hidden-explicit-label': {\n          impact: 'critical',\n          messages: {\n            pass: 'Form element has a visible explicit <label>',\n            fail: 'Form element has explicit <label> that is hidden',\n            incomplete: 'Unable to determine if form element has explicit <label> that is hidden'\n          }\n        },\n        'implicit-label': {\n          impact: 'critical',\n          messages: {\n            pass: 'Form element has an implicit (wrapped) <label>',\n            fail: 'Form element does not have an implicit (wrapped) <label>',\n            incomplete: 'Unable to determine if form element has an implicit (wrapped} <label>'\n          }\n        },\n        'label-content-name-mismatch': {\n          impact: 'serious',\n          messages: {\n            pass: 'Element contains visible text as part of it\\'s accessible name',\n            fail: 'Text inside the element is not included in the accessible name'\n          }\n        },\n        'multiple-label': {\n          impact: 'moderate',\n          messages: {\n            pass: 'Form field does not have multiple label elements',\n            incomplete: 'Multiple label elements is not widely supported in assistive technologies. Ensure the first label contains all necessary information.'\n          }\n        },\n        'title-only': {\n          impact: 'serious',\n          messages: {\n            pass: 'Form element does not solely use title attribute for its label',\n            fail: 'Only title used to generate label for form element'\n          }\n        },\n        'landmark-is-unique': {\n          impact: 'moderate',\n          messages: {\n            pass: 'Landmarks must have a unique role or role/label/title (i.e. accessible name) combination',\n            fail: 'The landmark must have a unique aria-label, aria-labelledby, or title to make landmarks distinguishable'\n          }\n        },\n        'has-lang': {\n          impact: 'serious',\n          messages: {\n            pass: 'The <html> element has a lang attribute',\n            fail: {\n              noXHTML: 'The xml:lang attribute is not valid on HTML pages, use the lang attribute.',\n              noLang: 'The <html> element does not have a lang attribute'\n            }\n          }\n        },\n        'valid-lang': {\n          impact: 'serious',\n          messages: {\n            pass: 'Value of lang attribute is included in the list of valid languages',\n            fail: 'Value of lang attribute not included in the list of valid languages'\n          }\n        },\n        'xml-lang-mismatch': {\n          impact: 'moderate',\n          messages: {\n            pass: 'Lang and xml:lang attributes have the same base language',\n            fail: 'Lang and xml:lang attributes do not have the same base language'\n          }\n        },\n        dlitem: {\n          impact: 'serious',\n          messages: {\n            pass: 'Description list item has a <dl> parent element',\n            fail: 'Description list item does not have a <dl> parent element'\n          }\n        },\n        listitem: {\n          impact: 'serious',\n          messages: {\n            pass: 'List item has a <ul>, <ol> or role=\"list\" parent element',\n            fail: {\n              default: 'List item does not have a <ul>, <ol> parent element',\n              roleNotValid: 'List item does not have a <ul>, <ol> parent element without a role, or a role=\"list\"'\n            }\n          }\n        },\n        'only-dlitems': {\n          impact: 'serious',\n          messages: {\n            pass: 'List element only has direct children that are allowed inside <dt> or <dd> elements',\n            fail: 'List element has direct children that are not allowed inside <dt> or <dd> elements'\n          }\n        },\n        'only-listitems': {\n          impact: 'serious',\n          messages: {\n            pass: 'List element only has direct children that are allowed inside <li> elements',\n            fail: {\n              default: 'List element has direct children that are not allowed inside <li> elements',\n              roleNotValid: 'List element has direct children with a role that is not allowed: ${data.roles}'\n            }\n          }\n        },\n        'structured-dlitems': {\n          impact: 'serious',\n          messages: {\n            pass: 'When not empty, element has both <dt> and <dd> elements',\n            fail: 'When not empty, element does not have at least one <dt> element followed by at least one <dd> element'\n          }\n        },\n        caption: {\n          impact: 'critical',\n          messages: {\n            pass: 'The multimedia element has a captions track',\n            incomplete: 'Check that captions is available for the element'\n          }\n        },\n        'frame-tested': {\n          impact: 'critical',\n          messages: {\n            pass: 'The iframe was tested with axe-core',\n            fail: 'The iframe could not be tested with axe-core',\n            incomplete: 'The iframe still has to be tested with axe-core'\n          }\n        },\n        'no-autoplay-audio': {\n          impact: 'moderate',\n          messages: {\n            pass: '<video> or <audio> does not output audio for more than allowed duration or has controls mechanism',\n            fail: '<video> or <audio> outputs audio for more than allowed duration and does not have a controls mechanism',\n            incomplete: 'Check that the <video> or <audio> does not output audio for more than allowed duration or provides a controls mechanism'\n          }\n        },\n        'css-orientation-lock': {\n          impact: 'serious',\n          messages: {\n            pass: 'Display is operable, and orientation lock does not exist',\n            fail: 'CSS Orientation lock is applied, and makes display inoperable',\n            incomplete: 'CSS Orientation lock cannot be determined'\n          }\n        },\n        'meta-viewport-large': {\n          impact: 'minor',\n          messages: {\n            pass: '<meta> tag does not prevent significant zooming on mobile devices',\n            fail: '<meta> tag limits zooming on mobile devices'\n          }\n        },\n        'meta-viewport': {\n          impact: 'critical',\n          messages: {\n            pass: '<meta> tag does not disable zooming on mobile devices',\n            fail: '${data} on <meta> tag disables zooming on mobile devices'\n          }\n        },\n        'header-present': {\n          impact: 'serious',\n          messages: {\n            pass: 'Page has a heading',\n            fail: 'Page does not have a heading'\n          }\n        },\n        'heading-order': {\n          impact: 'moderate',\n          messages: {\n            pass: 'Heading order valid',\n            fail: 'Heading order invalid'\n          }\n        },\n        'identical-links-same-purpose': {\n          impact: 'minor',\n          messages: {\n            pass: 'There are no other links with the same name, that go to a different URL',\n            incomplete: 'Check that links have the same purpose, or are intentionally ambiguous.'\n          }\n        },\n        'internal-link-present': {\n          impact: 'serious',\n          messages: {\n            pass: 'Valid skip link found',\n            fail: 'No valid skip link found'\n          }\n        },\n        landmark: {\n          impact: 'serious',\n          messages: {\n            pass: 'Page has a landmark region',\n            fail: 'Page does not have a landmark region'\n          }\n        },\n        'meta-refresh': {\n          impact: 'critical',\n          messages: {\n            pass: '<meta> tag does not immediately refresh the page',\n            fail: '<meta> tag forces timed refresh of page'\n          }\n        },\n        'p-as-heading': {\n          impact: 'serious',\n          messages: {\n            pass: '<p> elements are not styled as headings',\n            fail: 'Heading elements should be used instead of styled p elements'\n          }\n        },\n        region: {\n          impact: 'moderate',\n          messages: {\n            pass: 'All page content is contained by landmarks',\n            fail: 'Some page content is not contained by landmarks'\n          }\n        },\n        'skip-link': {\n          impact: 'moderate',\n          messages: {\n            pass: 'Skip link target exists',\n            incomplete: 'Skip link target should become visible on activation',\n            fail: 'No skip link target'\n          }\n        },\n        'unique-frame-title': {\n          impact: 'serious',\n          messages: {\n            pass: 'Element\\'s title attribute is unique',\n            fail: 'Element\\'s title attribute is not unique'\n          }\n        },\n        'duplicate-id-active': {\n          impact: 'serious',\n          messages: {\n            pass: 'Document has no active elements that share the same id attribute',\n            fail: 'Document has active elements with the same id attribute: ${data}'\n          }\n        },\n        'duplicate-id-aria': {\n          impact: 'critical',\n          messages: {\n            pass: 'Document has no elements referenced with ARIA or labels that share the same id attribute',\n            fail: 'Document has multiple elements referenced with ARIA with the same id attribute: ${data}'\n          }\n        },\n        'duplicate-id': {\n          impact: 'minor',\n          messages: {\n            pass: 'Document has no static elements that share the same id attribute',\n            fail: 'Document has multiple static elements with the same id attribute: ${data}'\n          }\n        },\n        'aria-label': {\n          impact: 'serious',\n          messages: {\n            pass: 'aria-label attribute exists and is not empty',\n            fail: 'aria-label attribute does not exist or is empty'\n          }\n        },\n        'aria-labelledby': {\n          impact: 'serious',\n          messages: {\n            pass: 'aria-labelledby attribute exists and references elements that are visible to screen readers',\n            fail: 'aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty',\n            incomplete: 'ensure aria-labelledby references an existing element'\n          }\n        },\n        'avoid-inline-spacing': {\n          impact: 'serious',\n          messages: {\n            pass: 'No inline styles with \\'!important\\' that affect text spacing has been specified',\n            fail: {\n              singular: 'Remove \\'!important\\' from inline style ${data.values}, as overriding this is not supported by most browsers',\n              plural: 'Remove \\'!important\\' from inline styles ${data.values}, as overriding this is not supported by most browsers'\n            }\n          }\n        },\n        'button-has-visible-text': {\n          impact: 'critical',\n          messages: {\n            pass: 'Element has inner text that is visible to screen readers',\n            fail: 'Element does not have inner text that is visible to screen readers',\n            incomplete: 'Unable to determine if element has children'\n          }\n        },\n        'doc-has-title': {\n          impact: 'serious',\n          messages: {\n            pass: 'Document has a non-empty <title> element',\n            fail: 'Document does not have a non-empty <title> element'\n          }\n        },\n        exists: {\n          impact: 'minor',\n          messages: {\n            pass: 'Element does not exist',\n            incomplete: 'Element exists'\n          }\n        },\n        'has-alt': {\n          impact: 'critical',\n          messages: {\n            pass: 'Element has an alt attribute',\n            fail: 'Element does not have an alt attribute'\n          }\n        },\n        'has-visible-text': {\n          impact: 'minor',\n          messages: {\n            pass: 'Element has text that is visible to screen readers',\n            fail: 'Element does not have text that is visible to screen readers',\n            incomplete: 'Unable to determine if element has children'\n          }\n        },\n        'is-on-screen': {\n          impact: 'serious',\n          messages: {\n            pass: 'Element is not visible',\n            fail: 'Element is visible'\n          }\n        },\n        'non-empty-alt': {\n          impact: 'critical',\n          messages: {\n            pass: 'Element has a non-empty alt attribute',\n            fail: {\n              noAttr: 'Element has no alt attribute',\n              emptyAttr: 'Element has an empty alt attribute'\n            }\n          }\n        },\n        'non-empty-if-present': {\n          impact: 'critical',\n          messages: {\n            pass: {\n              default: 'Element does not have a value attribute',\n              'has-label': 'Element has a non-empty value attribute'\n            },\n            fail: 'Element has a value attribute and the value attribute is empty'\n          }\n        },\n        'non-empty-placeholder': {\n          impact: 'serious',\n          messages: {\n            pass: 'Element has a placeholder attribute',\n            fail: {\n              noAttr: 'Element has no placeholder attribute',\n              emptyAttr: 'Element has an empty placeholder attribute'\n            }\n          }\n        },\n        'non-empty-title': {\n          impact: 'serious',\n          messages: {\n            pass: 'Element has a title attribute',\n            fail: {\n              noAttr: 'Element has no title attribute',\n              emptyAttr: 'Element has an empty title attribute'\n            }\n          }\n        },\n        'non-empty-value': {\n          impact: 'critical',\n          messages: {\n            pass: 'Element has a non-empty value attribute',\n            fail: {\n              noAttr: 'Element has no value attribute',\n              emptyAttr: 'Element has an empty value attribute'\n            }\n          }\n        },\n        'presentational-role': {\n          impact: 'minor',\n          messages: {\n            pass: 'Element\\'s default semantics were overriden with role=\"${data.role}\"',\n            fail: {\n              default: 'Element\\'s default semantics were not overridden with role=\"none\" or role=\"presentation\"',\n              globalAria: 'Element\\'s role is not presentational because it has a global ARIA attribute',\n              focusable: 'Element\\'s role is not presentational because it is focusable',\n              both: 'Element\\'s role is not presentational because it has a global ARIA attribute and is focusable'\n            }\n          }\n        },\n        'role-none': {\n          impact: 'minor',\n          messages: {\n            pass: 'Element\\'s default semantics were overriden with role=\"none\"',\n            fail: 'Element\\'s default semantics were not overridden with role=\"none\"'\n          }\n        },\n        'role-presentation': {\n          impact: 'minor',\n          messages: {\n            pass: 'Element\\'s default semantics were overriden with role=\"presentation\"',\n            fail: 'Element\\'s default semantics were not overridden with role=\"presentation\"'\n          }\n        },\n        'svg-non-empty-title': {\n          impact: 'serious',\n          messages: {\n            pass: 'Element has a child that is a title',\n            fail: {\n              noTitle: 'Element has no child that is a title',\n              emptyTitle: 'Element child title is empty'\n            },\n            incomplete: 'Unable to determine element has a child that is a title'\n          }\n        },\n        'caption-faked': {\n          impact: 'serious',\n          messages: {\n            pass: 'The first row of a table is not used as a caption',\n            fail: 'The first child of the table should be a caption instead of a table cell'\n          }\n        },\n        'html5-scope': {\n          impact: 'moderate',\n          messages: {\n            pass: 'Scope attribute is only used on table header elements (<th>)',\n            fail: 'In HTML 5, scope attributes may only be used on table header elements (<th>)'\n          }\n        },\n        'same-caption-summary': {\n          impact: 'minor',\n          messages: {\n            pass: 'Content of summary attribute and <caption> are not duplicated',\n            fail: 'Content of summary attribute and <caption> element are identical'\n          }\n        },\n        'scope-value': {\n          impact: 'critical',\n          messages: {\n            pass: 'Scope attribute is used correctly',\n            fail: 'The value of the scope attribute may only be \\'row\\' or \\'col\\''\n          }\n        },\n        'td-has-header': {\n          impact: 'critical',\n          messages: {\n            pass: 'All non-empty data cells have table headers',\n            fail: 'Some non-empty data cells do not have table headers'\n          }\n        },\n        'td-headers-attr': {\n          impact: 'serious',\n          messages: {\n            pass: 'The headers attribute is exclusively used to refer to other cells in the table',\n            incomplete: 'The headers attribute is empty',\n            fail: 'The headers attribute is not exclusively used to refer to other cells in the table'\n          }\n        },\n        'th-has-data-cells': {\n          impact: 'serious',\n          messages: {\n            pass: 'All table header cells refer to data cells',\n            fail: 'Not all table header cells refer to data cells',\n            incomplete: 'Table data cells are missing or empty'\n          }\n        },\n        'hidden-content': {\n          impact: 'minor',\n          messages: {\n            pass: 'All content on the page has been analyzed.',\n            fail: 'There were problems analyzing the content on this page.',\n            incomplete: 'There is hidden content on the page that was not analyzed. You will need to trigger the display of this content in order to analyze it.'\n          }\n        }\n      },\n      failureSummaries: {\n        any: {\n          failureMessage: function anonymous(it) {\n            var out = 'Fix any of the following:';\n            var arr1 = it;\n            if (arr1) {\n              var value, i1 = -1, l1 = arr1.length - 1;\n              while (i1 < l1) {\n                value = arr1[i1 += 1];\n                out += '\\n  ' + value.split('\\n').join('\\n  ');\n              }\n            }\n            return out;\n          }\n        },\n        none: {\n          failureMessage: function anonymous(it) {\n            var out = 'Fix all of the following:';\n            var arr1 = it;\n            if (arr1) {\n              var value, i1 = -1, l1 = arr1.length - 1;\n              while (i1 < l1) {\n                value = arr1[i1 += 1];\n                out += '\\n  ' + value.split('\\n').join('\\n  ');\n              }\n            }\n            return out;\n          }\n        }\n      },\n      incompleteFallbackMessage: {}\n    },\n    rules: [ {\n      id: 'accesskeys',\n      selector: '[accesskey]',\n      excludeHidden: false,\n      tags: [ 'cat.keyboard', 'best-practice' ],\n      all: [],\n      any: [],\n      none: [ 'accesskeys' ]\n    }, {\n      id: 'area-alt',\n      selector: 'map area[href]',\n      excludeHidden: false,\n      tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag111', 'wcag244', 'wcag412', 'section508', 'section508.22.a', 'ACT' ],\n      all: [],\n      any: [ {\n        options: {\n          attribute: 'alt'\n        },\n        id: 'non-empty-alt'\n      }, 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: []\n    }, {\n      id: 'aria-allowed-attr',\n      matches: 'aria-allowed-attr-matches',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],\n      all: [],\n      any: [ 'aria-allowed-attr' ],\n      none: [ 'aria-unsupported-attr', {\n        options: {\n          elementsAllowedAriaLabel: [ 'audio', 'applet', 'canvas', 'dl', 'embed', 'iframe', 'input', 'label', 'meter', 'object', 'svg', 'video' ]\n        },\n        id: 'aria-prohibited-attr'\n      } ]\n    }, {\n      id: 'aria-allowed-role',\n      excludeHidden: false,\n      selector: '[role]',\n      matches: 'aria-allowed-role-matches',\n      tags: [ 'cat.aria', 'best-practice' ],\n      all: [],\n      any: [ {\n        options: {\n          allowImplicit: true,\n          ignoredTags: []\n        },\n        id: 'aria-allowed-role'\n      } ],\n      none: []\n    }, {\n      id: 'aria-command-name',\n      selector: '[role=\"link\"], [role=\"button\"], [role=\"menuitem\"]',\n      matches: 'no-naming-method-matches',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],\n      all: [],\n      any: [ 'has-visible-text', 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: []\n    }, {\n      id: 'aria-dialog-name',\n      selector: '[role=\"dialog\"], [role=\"alertdialog\"]',\n      matches: 'no-naming-method-matches',\n      tags: [ 'cat.aria', 'best-practice' ],\n      all: [],\n      any: [ 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: []\n    }, {\n      id: 'aria-hidden-body',\n      selector: 'body',\n      excludeHidden: false,\n      matches: 'is-initiator-matches',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],\n      all: [],\n      any: [ 'aria-hidden-body' ],\n      none: []\n    }, {\n      id: 'aria-hidden-focus',\n      selector: '[aria-hidden=\"true\"]',\n      matches: 'aria-hidden-focus-matches',\n      excludeHidden: false,\n      tags: [ 'cat.name-role-value', 'wcag2a', 'wcag412', 'wcag131' ],\n      all: [ 'focusable-modal-open', 'focusable-disabled', 'focusable-not-tabbable' ],\n      any: [],\n      none: []\n    }, {\n      id: 'aria-input-field-name',\n      selector: '[role=\"combobox\"], [role=\"listbox\"], [role=\"searchbox\"], [role=\"slider\"], [role=\"spinbutton\"], [role=\"textbox\"]',\n      matches: 'no-naming-method-matches',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag412', 'ACT' ],\n      all: [],\n      any: [ 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: [ 'no-implicit-explicit-label' ]\n    }, {\n      id: 'aria-meter-name',\n      selector: '[role=\"meter\"]',\n      matches: 'no-naming-method-matches',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag111' ],\n      all: [],\n      any: [ 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: []\n    }, {\n      id: 'aria-progressbar-name',\n      selector: '[role=\"progressbar\"]',\n      matches: 'no-naming-method-matches',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag111' ],\n      all: [],\n      any: [ 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: []\n    }, {\n      id: 'aria-required-attr',\n      selector: '[role]',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],\n      all: [],\n      any: [ 'aria-required-attr' ],\n      none: []\n    }, {\n      id: 'aria-required-children',\n      selector: '[role]',\n      matches: 'aria-required-children-matches',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag131' ],\n      all: [],\n      any: [ {\n        options: {\n          reviewEmpty: [ 'doc-bibliography', 'doc-endnotes', 'grid', 'list', 'listbox', 'table', 'tablist', 'tree', 'treegrid', 'rowgroup' ]\n        },\n        id: 'aria-required-children'\n      } ],\n      none: []\n    }, {\n      id: 'aria-required-parent',\n      selector: '[role]',\n      matches: 'aria-required-parent-matches',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag131' ],\n      all: [],\n      any: [ {\n        options: {\n          ownGroupRoles: [ 'listitem', 'treeitem' ]\n        },\n        id: 'aria-required-parent'\n      } ],\n      none: []\n    }, {\n      id: 'aria-roledescription',\n      selector: '[aria-roledescription]',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],\n      all: [],\n      any: [ {\n        options: {\n          supportedRoles: [ 'button', 'img', 'checkbox', 'radio', 'combobox', 'menuitemcheckbox', 'menuitemradio' ]\n        },\n        id: 'aria-roledescription'\n      } ],\n      none: []\n    }, {\n      id: 'aria-roles',\n      selector: '[role]',\n      matches: 'no-empty-role-matches',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],\n      all: [],\n      any: [],\n      none: [ 'fallbackrole', 'invalidrole', 'abstractrole', 'unsupportedrole' ]\n    }, {\n      id: 'aria-text',\n      selector: '[role=text]',\n      tags: [ 'cat.aria', 'best-practice' ],\n      all: [],\n      any: [ 'no-focusable-content' ],\n      none: []\n    }, {\n      id: 'aria-toggle-field-name',\n      selector: '[role=\"checkbox\"], [role=\"menuitemcheckbox\"], [role=\"menuitemradio\"], [role=\"radio\"], [role=\"switch\"], [role=\"option\"]',\n      matches: 'no-naming-method-matches',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag412', 'ACT' ],\n      all: [],\n      any: [ 'has-visible-text', 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: [ 'no-implicit-explicit-label' ]\n    }, {\n      id: 'aria-tooltip-name',\n      selector: '[role=\"tooltip\"]',\n      matches: 'no-naming-method-matches',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],\n      all: [],\n      any: [ 'has-visible-text', 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: []\n    }, {\n      id: 'aria-treeitem-name',\n      selector: '[role=\"treeitem\"]',\n      matches: 'no-naming-method-matches',\n      tags: [ 'cat.aria', 'best-practice' ],\n      all: [],\n      any: [ 'has-visible-text', 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: []\n    }, {\n      id: 'aria-valid-attr-value',\n      matches: 'aria-has-attr-matches',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],\n      all: [ {\n        options: [],\n        id: 'aria-valid-attr-value'\n      }, 'aria-errormessage' ],\n      any: [],\n      none: []\n    }, {\n      id: 'aria-valid-attr',\n      matches: 'aria-has-attr-matches',\n      tags: [ 'cat.aria', 'wcag2a', 'wcag412' ],\n      all: [],\n      any: [ {\n        options: [],\n        id: 'aria-valid-attr'\n      } ],\n      none: []\n    }, {\n      id: 'audio-caption',\n      selector: 'audio',\n      enabled: false,\n      excludeHidden: false,\n      tags: [ 'cat.time-and-media', 'wcag2a', 'wcag121', 'section508', 'section508.22.a' ],\n      all: [],\n      any: [],\n      none: [ 'caption' ]\n    }, {\n      id: 'autocomplete-valid',\n      matches: 'autocomplete-matches',\n      tags: [ 'cat.forms', 'wcag21aa', 'wcag135' ],\n      all: [ 'autocomplete-valid', 'autocomplete-appropriate' ],\n      any: [],\n      none: []\n    }, {\n      id: 'avoid-inline-spacing',\n      selector: '[style]',\n      tags: [ 'cat.structure', 'wcag21aa', 'wcag1412' ],\n      all: [ {\n        options: {\n          cssProperties: [ 'line-height', 'letter-spacing', 'word-spacing' ]\n        },\n        id: 'avoid-inline-spacing'\n      } ],\n      any: [],\n      none: []\n    }, {\n      id: 'blink',\n      selector: 'blink',\n      excludeHidden: false,\n      tags: [ 'cat.time-and-media', 'wcag2a', 'wcag222', 'section508', 'section508.22.j' ],\n      all: [],\n      any: [],\n      none: [ 'is-on-screen' ]\n    }, {\n      id: 'button-name',\n      selector: 'button',\n      matches: 'no-explicit-name-required-matches',\n      tags: [ 'cat.name-role-value', 'wcag2a', 'wcag412', 'section508', 'section508.22.a', 'ACT' ],\n      all: [],\n      any: [ 'button-has-visible-text', 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      }, 'presentational-role' ],\n      none: []\n    }, {\n      id: 'bypass',\n      selector: 'html',\n      pageLevel: true,\n      matches: 'bypass-matches',\n      reviewOnFail: true,\n      tags: [ 'cat.keyboard', 'wcag2a', 'wcag241', 'section508', 'section508.22.o' ],\n      all: [],\n      any: [ 'internal-link-present', {\n        options: {\n          selector: ':is(h1, h2, h3, h4, h5, h6):not([role]), [role=heading]'\n        },\n        id: 'header-present'\n      }, {\n        options: {\n          selector: 'main, [role=main]'\n        },\n        id: 'landmark'\n      } ],\n      none: []\n    }, {\n      id: 'color-contrast',\n      matches: 'color-contrast-matches',\n      excludeHidden: false,\n      tags: [ 'cat.color', 'wcag2aa', 'wcag143' ],\n      all: [],\n      any: [ {\n        options: {\n          ignoreUnicode: true,\n          ignoreLength: false,\n          boldValue: 700,\n          boldTextPt: 14,\n          largeTextPt: 18,\n          contrastRatio: {\n            normal: {\n              expected: 4.5\n            },\n            large: {\n              expected: 3\n            }\n          },\n          shadowOutlineEmMax: .1\n        },\n        id: 'color-contrast'\n      } ],\n      none: []\n    }, {\n      id: 'css-orientation-lock',\n      selector: 'html',\n      tags: [ 'cat.structure', 'wcag134', 'wcag21aa', 'experimental' ],\n      all: [ {\n        options: {\n          degreeThreshold: 2\n        },\n        id: 'css-orientation-lock'\n      } ],\n      any: [],\n      none: [],\n      preload: true\n    }, {\n      id: 'definition-list',\n      selector: 'dl',\n      matches: 'no-role-matches',\n      tags: [ 'cat.structure', 'wcag2a', 'wcag131' ],\n      all: [],\n      any: [],\n      none: [ 'structured-dlitems', 'only-dlitems' ]\n    }, {\n      id: 'dlitem',\n      selector: 'dd, dt',\n      matches: 'no-role-matches',\n      tags: [ 'cat.structure', 'wcag2a', 'wcag131' ],\n      all: [],\n      any: [ 'dlitem' ],\n      none: []\n    }, {\n      id: 'document-title',\n      selector: 'html',\n      matches: 'is-initiator-matches',\n      tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag242', 'ACT' ],\n      all: [],\n      any: [ 'doc-has-title' ],\n      none: []\n    }, {\n      id: 'duplicate-id-active',\n      selector: '[id]',\n      matches: 'duplicate-id-active-matches',\n      excludeHidden: false,\n      tags: [ 'cat.parsing', 'wcag2a', 'wcag411' ],\n      all: [],\n      any: [ 'duplicate-id-active' ],\n      none: []\n    }, {\n      id: 'duplicate-id-aria',\n      selector: '[id]',\n      matches: 'duplicate-id-aria-matches',\n      excludeHidden: false,\n      tags: [ 'cat.parsing', 'wcag2a', 'wcag411' ],\n      all: [],\n      any: [ 'duplicate-id-aria' ],\n      none: []\n    }, {\n      id: 'duplicate-id',\n      selector: '[id]',\n      matches: 'duplicate-id-misc-matches',\n      excludeHidden: false,\n      tags: [ 'cat.parsing', 'wcag2a', 'wcag411' ],\n      all: [],\n      any: [ 'duplicate-id' ],\n      none: []\n    }, {\n      id: 'empty-heading',\n      selector: 'h1, h2, h3, h4, h5, h6, [role=\"heading\"]',\n      matches: 'heading-matches',\n      tags: [ 'cat.name-role-value', 'best-practice' ],\n      impact: 'minor',\n      all: [],\n      any: [ 'has-visible-text', 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: []\n    }, {\n      id: 'empty-table-header',\n      selector: 'th, [role=\"rowheader\"], [role=\"columnheader\"]',\n      tags: [ 'wcag131', 'cat.aria' ],\n      reviewOnFail: true,\n      all: [],\n      any: [ 'has-visible-text' ],\n      none: []\n    }, {\n      id: 'focus-order-semantics',\n      selector: 'div, h1, h2, h3, h4, h5, h6, [role=heading], p, span',\n      matches: 'inserted-into-focus-order-matches',\n      tags: [ 'cat.keyboard', 'best-practice', 'experimental' ],\n      all: [],\n      any: [ {\n        options: [],\n        id: 'has-widget-role'\n      }, {\n        options: {\n          roles: [ 'tooltip' ]\n        },\n        id: 'valid-scrollable-semantics'\n      } ],\n      none: []\n    }, {\n      id: 'form-field-multiple-labels',\n      selector: 'input, select, textarea',\n      matches: 'label-matches',\n      tags: [ 'cat.forms', 'wcag2a', 'wcag332' ],\n      all: [],\n      any: [],\n      none: [ 'multiple-label' ]\n    }, {\n      id: 'frame-focusable-content',\n      selector: 'html',\n      matches: 'frame-focusable-content-matches',\n      tags: [ 'cat.keyboard', 'wcag2a', 'wcag211' ],\n      all: [],\n      any: [ 'frame-focusable-content' ],\n      none: []\n    }, {\n      id: 'frame-tested',\n      selector: 'frame, iframe',\n      tags: [ 'cat.structure', 'review-item', 'best-practice' ],\n      all: [ {\n        options: {\n          isViolation: false\n        },\n        id: 'frame-tested'\n      } ],\n      any: [],\n      none: []\n    }, {\n      id: 'frame-title-unique',\n      selector: 'frame[title], iframe[title]',\n      matches: 'frame-title-has-text-matches',\n      tags: [ 'cat.text-alternatives', 'best-practice' ],\n      all: [],\n      any: [],\n      none: [ 'unique-frame-title' ]\n    }, {\n      id: 'frame-title',\n      selector: 'frame, iframe',\n      tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag241', 'wcag412', 'section508', 'section508.22.i' ],\n      all: [],\n      any: [ {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      }, 'aria-label', 'aria-labelledby', 'presentational-role' ],\n      none: []\n    }, {\n      id: 'heading-order',\n      selector: 'h1, h2, h3, h4, h5, h6, [role=heading]',\n      matches: 'heading-matches',\n      tags: [ 'cat.semantics', 'best-practice' ],\n      all: [],\n      any: [ 'heading-order' ],\n      none: []\n    }, {\n      id: 'hidden-content',\n      selector: '*',\n      excludeHidden: false,\n      tags: [ 'cat.structure', 'experimental', 'review-item', 'best-practice' ],\n      all: [],\n      any: [ 'hidden-content' ],\n      none: []\n    }, {\n      id: 'html-has-lang',\n      selector: 'html',\n      matches: 'is-initiator-matches',\n      tags: [ 'cat.language', 'wcag2a', 'wcag311', 'ACT' ],\n      all: [],\n      any: [ {\n        options: {\n          attributes: [ 'lang', 'xml:lang' ]\n        },\n        id: 'has-lang'\n      } ],\n      none: []\n    }, {\n      id: 'html-lang-valid',\n      selector: 'html[lang], html[xml\\\\:lang]',\n      tags: [ 'cat.language', 'wcag2a', 'wcag311', 'ACT' ],\n      all: [],\n      any: [],\n      none: [ {\n        options: {\n          attributes: [ 'lang', 'xml:lang' ]\n        },\n        id: 'valid-lang'\n      } ]\n    }, {\n      id: 'html-xml-lang-mismatch',\n      selector: 'html[lang][xml\\\\:lang]',\n      matches: 'xml-lang-mismatch-matches',\n      tags: [ 'cat.language', 'wcag2a', 'wcag311', 'ACT' ],\n      all: [ 'xml-lang-mismatch' ],\n      any: [],\n      none: []\n    }, {\n      id: 'identical-links-same-purpose',\n      selector: 'a[href], area[href], [role=\"link\"]',\n      excludeHidden: false,\n      matches: 'identical-links-same-purpose-matches',\n      tags: [ 'cat.semantics', 'wcag2aaa', 'wcag249', 'best-practice' ],\n      all: [ 'identical-links-same-purpose' ],\n      any: [],\n      none: []\n    }, {\n      id: 'image-alt',\n      selector: 'img',\n      matches: 'no-explicit-name-required-matches',\n      tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag111', 'section508', 'section508.22.a', 'ACT' ],\n      all: [],\n      any: [ 'has-alt', 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      }, 'presentational-role' ],\n      none: [ 'alt-space-value' ]\n    }, {\n      id: 'image-redundant-alt',\n      selector: 'img',\n      tags: [ 'cat.text-alternatives', 'best-practice' ],\n      all: [],\n      any: [],\n      none: [ {\n        options: {\n          parentSelector: 'button, [role=button], a[href], p, li, td, th'\n        },\n        id: 'duplicate-img-label'\n      } ]\n    }, {\n      id: 'input-button-name',\n      selector: 'input[type=\"button\"], input[type=\"submit\"], input[type=\"reset\"]',\n      matches: 'no-explicit-name-required-matches',\n      tags: [ 'cat.name-role-value', 'wcag2a', 'wcag412', 'section508', 'section508.22.a' ],\n      all: [],\n      any: [ 'non-empty-if-present', {\n        options: {\n          attribute: 'value'\n        },\n        id: 'non-empty-value'\n      }, 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      }, 'presentational-role' ],\n      none: []\n    }, {\n      id: 'input-image-alt',\n      selector: 'input[type=\"image\"]',\n      matches: 'no-explicit-name-required-matches',\n      tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag111', 'section508', 'section508.22.a', 'ACT' ],\n      all: [],\n      any: [ {\n        options: {\n          attribute: 'alt'\n        },\n        id: 'non-empty-alt'\n      }, 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: []\n    }, {\n      id: 'label-content-name-mismatch',\n      matches: 'label-content-name-mismatch-matches',\n      tags: [ 'cat.semantics', 'wcag21a', 'wcag253', 'experimental' ],\n      all: [],\n      any: [ {\n        options: {\n          pixelThreshold: .1,\n          occuranceThreshold: 3\n        },\n        id: 'label-content-name-mismatch'\n      } ],\n      none: []\n    }, {\n      id: 'label-title-only',\n      selector: 'input, select, textarea',\n      matches: 'label-matches',\n      tags: [ 'cat.forms', 'best-practice' ],\n      all: [],\n      any: [],\n      none: [ 'title-only' ]\n    }, {\n      id: 'label',\n      selector: 'input, textarea',\n      matches: 'label-matches',\n      tags: [ 'cat.forms', 'wcag2a', 'wcag412', 'wcag131', 'section508', 'section508.22.n', 'ACT' ],\n      all: [],\n      any: [ 'implicit-label', 'explicit-label', 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      }, {\n        options: {\n          attribute: 'placeholder'\n        },\n        id: 'non-empty-placeholder'\n      }, 'presentational-role' ],\n      none: [ 'help-same-as-label', 'hidden-explicit-label' ]\n    }, {\n      id: 'landmark-banner-is-top-level',\n      selector: 'header:not([role]), [role=banner]',\n      matches: 'landmark-has-body-context-matches',\n      tags: [ 'cat.semantics', 'best-practice' ],\n      all: [],\n      any: [ 'landmark-is-top-level' ],\n      none: []\n    }, {\n      id: 'landmark-complementary-is-top-level',\n      selector: 'aside:not([role]), [role=complementary]',\n      tags: [ 'cat.semantics', 'best-practice' ],\n      all: [],\n      any: [ 'landmark-is-top-level' ],\n      none: []\n    }, {\n      id: 'landmark-contentinfo-is-top-level',\n      selector: 'footer:not([role]), [role=contentinfo]',\n      matches: 'landmark-has-body-context-matches',\n      tags: [ 'cat.semantics', 'best-practice' ],\n      all: [],\n      any: [ 'landmark-is-top-level' ],\n      none: []\n    }, {\n      id: 'landmark-main-is-top-level',\n      selector: 'main:not([role]), [role=main]',\n      tags: [ 'cat.semantics', 'best-practice' ],\n      all: [],\n      any: [ 'landmark-is-top-level' ],\n      none: []\n    }, {\n      id: 'landmark-no-duplicate-banner',\n      selector: 'header:not([role]), [role=banner]',\n      tags: [ 'cat.semantics', 'best-practice' ],\n      all: [],\n      any: [ {\n        options: {\n          selector: 'header:not([role]), [role=banner]',\n          nativeScopeFilter: 'article, aside, main, nav, section'\n        },\n        id: 'page-no-duplicate-banner'\n      } ],\n      none: []\n    }, {\n      id: 'landmark-no-duplicate-contentinfo',\n      selector: 'footer:not([role]), [role=contentinfo]',\n      tags: [ 'cat.semantics', 'best-practice' ],\n      all: [],\n      any: [ {\n        options: {\n          selector: 'footer:not([role]), [role=contentinfo]',\n          nativeScopeFilter: 'article, aside, main, nav, section'\n        },\n        id: 'page-no-duplicate-contentinfo'\n      } ],\n      none: []\n    }, {\n      id: 'landmark-no-duplicate-main',\n      selector: 'main:not([role]), [role=main]',\n      tags: [ 'cat.semantics', 'best-practice' ],\n      all: [],\n      any: [ {\n        options: {\n          selector: 'main:not([role]), [role=\\'main\\']'\n        },\n        id: 'page-no-duplicate-main'\n      } ],\n      none: []\n    }, {\n      id: 'landmark-one-main',\n      selector: 'html',\n      tags: [ 'cat.semantics', 'best-practice' ],\n      all: [ {\n        options: {\n          selector: 'main:not([role]), [role=\\'main\\']'\n        },\n        id: 'page-has-main'\n      } ],\n      any: [],\n      none: []\n    }, {\n      id: 'landmark-unique',\n      selector: '[role=banner], [role=complementary], [role=contentinfo], [role=main], [role=navigation], [role=region], [role=search], [role=form], form, footer, header, aside, main, nav, section',\n      tags: [ 'cat.semantics', 'best-practice' ],\n      matches: 'landmark-unique-matches',\n      all: [],\n      any: [ 'landmark-is-unique' ],\n      none: []\n    }, {\n      id: 'link-in-text-block',\n      selector: 'a[href], [role=link]',\n      matches: 'link-in-text-block-matches',\n      excludeHidden: false,\n      tags: [ 'cat.color', 'experimental', 'wcag2a', 'wcag141' ],\n      all: [ 'link-in-text-block' ],\n      any: [],\n      none: []\n    }, {\n      id: 'link-name',\n      selector: 'a[href]',\n      tags: [ 'cat.name-role-value', 'wcag2a', 'wcag412', 'wcag244', 'section508', 'section508.22.a', 'ACT' ],\n      all: [],\n      any: [ 'has-visible-text', 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: [ 'focusable-no-name' ]\n    }, {\n      id: 'list',\n      selector: 'ul, ol',\n      matches: 'no-role-matches',\n      tags: [ 'cat.structure', 'wcag2a', 'wcag131' ],\n      all: [],\n      any: [],\n      none: [ 'only-listitems' ]\n    }, {\n      id: 'listitem',\n      selector: 'li',\n      matches: 'no-role-matches',\n      tags: [ 'cat.structure', 'wcag2a', 'wcag131' ],\n      all: [],\n      any: [ 'listitem' ],\n      none: []\n    }, {\n      id: 'marquee',\n      selector: 'marquee',\n      excludeHidden: false,\n      tags: [ 'cat.parsing', 'wcag2a', 'wcag222' ],\n      all: [],\n      any: [],\n      none: [ 'is-on-screen' ]\n    }, {\n      id: 'meta-refresh',\n      selector: 'meta[http-equiv=\"refresh\"]',\n      excludeHidden: false,\n      tags: [ 'cat.time-and-media', 'wcag2a', 'wcag2aaa', 'wcag221', 'wcag224', 'wcag325' ],\n      all: [],\n      any: [ 'meta-refresh' ],\n      none: []\n    }, {\n      id: 'meta-viewport-large',\n      selector: 'meta[name=\"viewport\"]',\n      excludeHidden: false,\n      tags: [ 'cat.sensory-and-visual-cues', 'best-practice' ],\n      all: [],\n      any: [ {\n        options: {\n          scaleMinimum: 5,\n          lowerBound: 2\n        },\n        id: 'meta-viewport-large'\n      } ],\n      none: []\n    }, {\n      id: 'meta-viewport',\n      selector: 'meta[name=\"viewport\"]',\n      excludeHidden: false,\n      tags: [ 'cat.sensory-and-visual-cues', 'best-practice', 'ACT' ],\n      all: [],\n      any: [ {\n        options: {\n          scaleMinimum: 2\n        },\n        id: 'meta-viewport'\n      } ],\n      none: []\n    }, {\n      id: 'nested-interactive',\n      matches: 'nested-interactive-matches',\n      tags: [ 'cat.keyboard', 'wcag2a', 'wcag412' ],\n      all: [],\n      any: [ 'no-focusable-content' ],\n      none: []\n    }, {\n      id: 'no-autoplay-audio',\n      excludeHidden: false,\n      selector: 'audio[autoplay], video[autoplay]',\n      matches: 'no-autoplay-audio-matches',\n      tags: [ 'cat.time-and-media', 'wcag2a', 'wcag142', 'experimental' ],\n      preload: true,\n      all: [ {\n        options: {\n          allowedDuration: 3\n        },\n        id: 'no-autoplay-audio'\n      } ],\n      any: [],\n      none: []\n    }, {\n      id: 'object-alt',\n      selector: 'object',\n      matches: 'no-explicit-name-required-matches',\n      tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag111', 'section508', 'section508.22.a' ],\n      all: [],\n      any: [ 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      }, 'presentational-role' ],\n      none: []\n    }, {\n      id: 'p-as-heading',\n      selector: 'p',\n      matches: 'p-as-heading-matches',\n      tags: [ 'cat.semantics', 'wcag2a', 'wcag131', 'experimental' ],\n      all: [ {\n        options: {\n          margins: [ {\n            weight: 150,\n            italic: true\n          }, {\n            weight: 150,\n            size: 1.15\n          }, {\n            italic: true,\n            size: 1.15\n          }, {\n            size: 1.4\n          } ]\n        },\n        id: 'p-as-heading'\n      } ],\n      any: [],\n      none: []\n    }, {\n      id: 'page-has-heading-one',\n      selector: 'html',\n      tags: [ 'cat.semantics', 'best-practice' ],\n      all: [ {\n        options: {\n          selector: 'h1:not([role], [aria-level]), :is(h1, h2, h3, h4, h5, h6):not([role])[aria-level=1], [role=heading][aria-level=1]'\n        },\n        id: 'page-has-heading-one'\n      } ],\n      any: [],\n      none: []\n    }, {\n      id: 'presentation-role-conflict',\n      selector: '[role=\"none\"], [role=\"presentation\"]',\n      tags: [ 'cat.aria', 'best-practice' ],\n      all: [],\n      any: [],\n      none: [ 'is-element-focusable', 'has-global-aria-attribute' ]\n    }, {\n      id: 'region',\n      selector: 'body *',\n      tags: [ 'cat.keyboard', 'best-practice' ],\n      all: [],\n      any: [ {\n        options: {\n          regionMatcher: 'dialog, [role=dialog], [role=alertdialog], svg, iframe'\n        },\n        id: 'region'\n      } ],\n      none: []\n    }, {\n      id: 'role-img-alt',\n      selector: '[role=\\'img\\']:not(img, area, input, object)',\n      matches: 'html-namespace-matches',\n      tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag111', 'section508', 'section508.22.a', 'ACT' ],\n      all: [],\n      any: [ 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: []\n    }, {\n      id: 'scope-attr-valid',\n      selector: 'td[scope], th[scope]',\n      tags: [ 'cat.tables', 'best-practice' ],\n      all: [ 'html5-scope', {\n        options: {\n          values: [ 'row', 'col', 'rowgroup', 'colgroup' ]\n        },\n        id: 'scope-value'\n      } ],\n      any: [],\n      none: []\n    }, {\n      id: 'scrollable-region-focusable',\n      matches: 'scrollable-region-focusable-matches',\n      tags: [ 'cat.keyboard', 'wcag2a', 'wcag211' ],\n      all: [],\n      any: [ 'focusable-content', 'focusable-element' ],\n      none: []\n    }, {\n      id: 'select-name',\n      selector: 'select',\n      tags: [ 'cat.forms', 'wcag2a', 'wcag412', 'wcag131', 'section508', 'section508.22.n', 'ACT' ],\n      all: [],\n      any: [ 'implicit-label', 'explicit-label', 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      }, 'presentational-role' ],\n      none: [ 'help-same-as-label', 'hidden-explicit-label' ]\n    }, {\n      id: 'server-side-image-map',\n      selector: 'img[ismap]',\n      tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag211', 'section508', 'section508.22.f' ],\n      all: [],\n      any: [],\n      none: [ 'exists' ]\n    }, {\n      id: 'skip-link',\n      selector: 'a[href^=\"#\"], a[href^=\"/#\"]',\n      matches: 'skip-link-matches',\n      tags: [ 'cat.keyboard', 'best-practice' ],\n      all: [],\n      any: [ 'skip-link' ],\n      none: []\n    }, {\n      id: 'svg-img-alt',\n      selector: '[role=\"img\"], [role=\"graphics-symbol\"], svg[role=\"graphics-document\"]',\n      matches: 'svg-namespace-matches',\n      tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag111', 'section508', 'section508.22.a', 'ACT' ],\n      all: [],\n      any: [ 'svg-non-empty-title', 'aria-label', 'aria-labelledby', {\n        options: {\n          attribute: 'title'\n        },\n        id: 'non-empty-title'\n      } ],\n      none: []\n    }, {\n      id: 'tabindex',\n      selector: '[tabindex]',\n      tags: [ 'cat.keyboard', 'best-practice' ],\n      all: [],\n      any: [ 'tabindex' ],\n      none: []\n    }, {\n      id: 'table-duplicate-name',\n      selector: 'table',\n      tags: [ 'cat.tables', 'best-practice' ],\n      all: [],\n      any: [],\n      none: [ 'same-caption-summary' ]\n    }, {\n      id: 'table-fake-caption',\n      selector: 'table',\n      matches: 'data-table-matches',\n      tags: [ 'cat.tables', 'experimental', 'wcag2a', 'wcag131', 'section508', 'section508.22.g' ],\n      all: [ 'caption-faked' ],\n      any: [],\n      none: []\n    }, {\n      id: 'td-has-header',\n      selector: 'table',\n      matches: 'data-table-large-matches',\n      tags: [ 'cat.tables', 'experimental', 'wcag2a', 'wcag131', 'section508', 'section508.22.g' ],\n      all: [ 'td-has-header' ],\n      any: [],\n      none: []\n    }, {\n      id: 'td-headers-attr',\n      selector: 'table',\n      tags: [ 'cat.tables', 'wcag2a', 'wcag131', 'section508', 'section508.22.g' ],\n      all: [ 'td-headers-attr' ],\n      any: [],\n      none: []\n    }, {\n      id: 'th-has-data-cells',\n      selector: 'table',\n      matches: 'data-table-matches',\n      tags: [ 'cat.tables', 'wcag2a', 'wcag131', 'section508', 'section508.22.g' ],\n      all: [ 'th-has-data-cells' ],\n      any: [],\n      none: []\n    }, {\n      id: 'valid-lang',\n      selector: '[lang], [xml\\\\:lang]',\n      matches: 'not-html-matches',\n      tags: [ 'cat.language', 'wcag2aa', 'wcag312' ],\n      all: [],\n      any: [],\n      none: [ {\n        options: {\n          attributes: [ 'lang', 'xml:lang' ]\n        },\n        id: 'valid-lang'\n      } ]\n    }, {\n      id: 'video-caption',\n      selector: 'video',\n      excludeHidden: false,\n      tags: [ 'cat.text-alternatives', 'wcag2a', 'wcag122', 'section508', 'section508.22.a' ],\n      all: [],\n      any: [],\n      none: [ 'caption' ]\n    } ],\n    checks: [ {\n      id: 'abstractrole',\n      evaluate: 'abstractrole-evaluate'\n    }, {\n      id: 'aria-allowed-attr',\n      evaluate: 'aria-allowed-attr-evaluate'\n    }, {\n      id: 'aria-allowed-role',\n      evaluate: 'aria-allowed-role-evaluate',\n      options: {\n        allowImplicit: true,\n        ignoredTags: []\n      }\n    }, {\n      id: 'aria-errormessage',\n      evaluate: 'aria-errormessage-evaluate'\n    }, {\n      id: 'aria-hidden-body',\n      evaluate: 'aria-hidden-body-evaluate'\n    }, {\n      id: 'aria-prohibited-attr',\n      evaluate: 'aria-prohibited-attr-evaluate',\n      options: {\n        elementsAllowedAriaLabel: [ 'audio', 'applet', 'canvas', 'dl', 'embed', 'iframe', 'input', 'label', 'meter', 'object', 'svg', 'video' ]\n      }\n    }, {\n      id: 'aria-required-attr',\n      evaluate: 'aria-required-attr-evaluate'\n    }, {\n      id: 'aria-required-children',\n      evaluate: 'aria-required-children-evaluate',\n      options: {\n        reviewEmpty: [ 'doc-bibliography', 'doc-endnotes', 'grid', 'list', 'listbox', 'table', 'tablist', 'tree', 'treegrid', 'rowgroup' ]\n      }\n    }, {\n      id: 'aria-required-parent',\n      evaluate: 'aria-required-parent-evaluate',\n      options: {\n        ownGroupRoles: [ 'listitem', 'treeitem' ]\n      }\n    }, {\n      id: 'aria-roledescription',\n      evaluate: 'aria-roledescription-evaluate',\n      options: {\n        supportedRoles: [ 'button', 'img', 'checkbox', 'radio', 'combobox', 'menuitemcheckbox', 'menuitemradio' ]\n      }\n    }, {\n      id: 'aria-unsupported-attr',\n      evaluate: 'aria-unsupported-attr-evaluate'\n    }, {\n      id: 'aria-valid-attr-value',\n      evaluate: 'aria-valid-attr-value-evaluate',\n      options: []\n    }, {\n      id: 'aria-valid-attr',\n      evaluate: 'aria-valid-attr-evaluate',\n      options: []\n    }, {\n      id: 'fallbackrole',\n      evaluate: 'fallbackrole-evaluate'\n    }, {\n      id: 'has-global-aria-attribute',\n      evaluate: 'has-global-aria-attribute-evaluate'\n    }, {\n      id: 'has-widget-role',\n      evaluate: 'has-widget-role-evaluate',\n      options: []\n    }, {\n      id: 'invalidrole',\n      evaluate: 'invalidrole-evaluate'\n    }, {\n      id: 'is-element-focusable',\n      evaluate: 'is-element-focusable-evaluate'\n    }, {\n      id: 'no-implicit-explicit-label',\n      evaluate: 'no-implicit-explicit-label-evaluate'\n    }, {\n      id: 'unsupportedrole',\n      evaluate: 'unsupportedrole-evaluate'\n    }, {\n      id: 'valid-scrollable-semantics',\n      evaluate: 'valid-scrollable-semantics-evaluate',\n      options: {\n        roles: [ 'tooltip' ]\n      }\n    }, {\n      id: 'color-contrast',\n      evaluate: 'color-contrast-evaluate',\n      options: {\n        ignoreUnicode: true,\n        ignoreLength: false,\n        boldValue: 700,\n        boldTextPt: 14,\n        largeTextPt: 18,\n        contrastRatio: {\n          normal: {\n            expected: 4.5\n          },\n          large: {\n            expected: 3\n          }\n        },\n        shadowOutlineEmMax: .1\n      }\n    }, {\n      id: 'link-in-text-block',\n      evaluate: 'link-in-text-block-evaluate'\n    }, {\n      id: 'autocomplete-appropriate',\n      evaluate: 'autocomplete-appropriate-evaluate'\n    }, {\n      id: 'autocomplete-valid',\n      evaluate: 'autocomplete-valid-evaluate'\n    }, {\n      id: 'accesskeys',\n      evaluate: 'accesskeys-evaluate',\n      after: 'accesskeys-after'\n    }, {\n      id: 'focusable-content',\n      evaluate: 'focusable-content-evaluate'\n    }, {\n      id: 'focusable-disabled',\n      evaluate: 'focusable-disabled-evaluate'\n    }, {\n      id: 'focusable-element',\n      evaluate: 'focusable-element-evaluate'\n    }, {\n      id: 'focusable-modal-open',\n      evaluate: 'focusable-modal-open-evaluate'\n    }, {\n      id: 'focusable-no-name',\n      evaluate: 'focusable-no-name-evaluate'\n    }, {\n      id: 'focusable-not-tabbable',\n      evaluate: 'focusable-not-tabbable-evaluate'\n    }, {\n      id: 'frame-focusable-content',\n      evaluate: 'no-focusable-content-evaluate'\n    }, {\n      id: 'landmark-is-top-level',\n      evaluate: 'landmark-is-top-level-evaluate'\n    }, {\n      id: 'no-focusable-content',\n      evaluate: 'no-focusable-content-evaluate'\n    }, {\n      id: 'page-has-heading-one',\n      evaluate: 'has-descendant-evaluate',\n      after: 'has-descendant-after',\n      options: {\n        selector: 'h1:not([role], [aria-level]), :is(h1, h2, h3, h4, h5, h6):not([role])[aria-level=1], [role=heading][aria-level=1]'\n      }\n    }, {\n      id: 'page-has-main',\n      evaluate: 'has-descendant-evaluate',\n      after: 'has-descendant-after',\n      options: {\n        selector: 'main:not([role]), [role=\\'main\\']'\n      }\n    }, {\n      id: 'page-no-duplicate-banner',\n      evaluate: 'page-no-duplicate-evaluate',\n      after: 'page-no-duplicate-after',\n      options: {\n        selector: 'header:not([role]), [role=banner]',\n        nativeScopeFilter: 'article, aside, main, nav, section'\n      }\n    }, {\n      id: 'page-no-duplicate-contentinfo',\n      evaluate: 'page-no-duplicate-evaluate',\n      after: 'page-no-duplicate-after',\n      options: {\n        selector: 'footer:not([role]), [role=contentinfo]',\n        nativeScopeFilter: 'article, aside, main, nav, section'\n      }\n    }, {\n      id: 'page-no-duplicate-main',\n      evaluate: 'page-no-duplicate-evaluate',\n      after: 'page-no-duplicate-after',\n      options: {\n        selector: 'main:not([role]), [role=\\'main\\']'\n      }\n    }, {\n      id: 'tabindex',\n      evaluate: 'tabindex-evaluate'\n    }, {\n      id: 'alt-space-value',\n      evaluate: 'alt-space-value-evaluate'\n    }, {\n      id: 'duplicate-img-label',\n      evaluate: 'duplicate-img-label-evaluate',\n      options: {\n        parentSelector: 'button, [role=button], a[href], p, li, td, th'\n      }\n    }, {\n      id: 'explicit-label',\n      evaluate: 'explicit-evaluate'\n    }, {\n      id: 'help-same-as-label',\n      evaluate: 'help-same-as-label-evaluate',\n      enabled: false\n    }, {\n      id: 'hidden-explicit-label',\n      evaluate: 'hidden-explicit-label-evaluate'\n    }, {\n      id: 'implicit-label',\n      evaluate: 'implicit-evaluate'\n    }, {\n      id: 'label-content-name-mismatch',\n      evaluate: 'label-content-name-mismatch-evaluate',\n      options: {\n        pixelThreshold: .1,\n        occuranceThreshold: 3\n      }\n    }, {\n      id: 'multiple-label',\n      evaluate: 'multiple-label-evaluate'\n    }, {\n      id: 'title-only',\n      evaluate: 'title-only-evaluate'\n    }, {\n      id: 'landmark-is-unique',\n      evaluate: 'landmark-is-unique-evaluate',\n      after: 'landmark-is-unique-after'\n    }, {\n      id: 'has-lang',\n      evaluate: 'has-lang-evaluate',\n      options: {\n        attributes: [ 'lang', 'xml:lang' ]\n      }\n    }, {\n      id: 'valid-lang',\n      evaluate: 'valid-lang-evaluate',\n      options: {\n        attributes: [ 'lang', 'xml:lang' ]\n      }\n    }, {\n      id: 'xml-lang-mismatch',\n      evaluate: 'xml-lang-mismatch-evaluate'\n    }, {\n      id: 'dlitem',\n      evaluate: 'dlitem-evaluate'\n    }, {\n      id: 'listitem',\n      evaluate: 'listitem-evaluate'\n    }, {\n      id: 'only-dlitems',\n      evaluate: 'only-dlitems-evaluate'\n    }, {\n      id: 'only-listitems',\n      evaluate: 'only-listitems-evaluate'\n    }, {\n      id: 'structured-dlitems',\n      evaluate: 'structured-dlitems-evaluate'\n    }, {\n      id: 'caption',\n      evaluate: 'caption-evaluate'\n    }, {\n      id: 'frame-tested',\n      evaluate: 'frame-tested-evaluate',\n      options: {\n        isViolation: false\n      }\n    }, {\n      id: 'no-autoplay-audio',\n      evaluate: 'no-autoplay-audio-evaluate',\n      options: {\n        allowedDuration: 3\n      }\n    }, {\n      id: 'css-orientation-lock',\n      evaluate: 'css-orientation-lock-evaluate',\n      options: {\n        degreeThreshold: 2\n      }\n    }, {\n      id: 'meta-viewport-large',\n      evaluate: 'meta-viewport-scale-evaluate',\n      options: {\n        scaleMinimum: 5,\n        lowerBound: 2\n      }\n    }, {\n      id: 'meta-viewport',\n      evaluate: 'meta-viewport-scale-evaluate',\n      options: {\n        scaleMinimum: 2\n      }\n    }, {\n      id: 'header-present',\n      evaluate: 'has-descendant-evaluate',\n      after: 'has-descendant-after',\n      options: {\n        selector: ':is(h1, h2, h3, h4, h5, h6):not([role]), [role=heading]'\n      }\n    }, {\n      id: 'heading-order',\n      evaluate: 'heading-order-evaluate',\n      after: 'heading-order-after'\n    }, {\n      id: 'identical-links-same-purpose',\n      evaluate: 'identical-links-same-purpose-evaluate',\n      after: 'identical-links-same-purpose-after'\n    }, {\n      id: 'internal-link-present',\n      evaluate: 'internal-link-present-evaluate'\n    }, {\n      id: 'landmark',\n      evaluate: 'has-descendant-evaluate',\n      options: {\n        selector: 'main, [role=main]'\n      }\n    }, {\n      id: 'meta-refresh',\n      evaluate: 'meta-refresh-evaluate'\n    }, {\n      id: 'p-as-heading',\n      evaluate: 'p-as-heading-evaluate',\n      options: {\n        margins: [ {\n          weight: 150,\n          italic: true\n        }, {\n          weight: 150,\n          size: 1.15\n        }, {\n          italic: true,\n          size: 1.15\n        }, {\n          size: 1.4\n        } ]\n      }\n    }, {\n      id: 'region',\n      evaluate: 'region-evaluate',\n      options: {\n        regionMatcher: 'dialog, [role=dialog], [role=alertdialog], svg, iframe'\n      }\n    }, {\n      id: 'skip-link',\n      evaluate: 'skip-link-evaluate'\n    }, {\n      id: 'unique-frame-title',\n      evaluate: 'unique-frame-title-evaluate',\n      after: 'unique-frame-title-after'\n    }, {\n      id: 'duplicate-id-active',\n      evaluate: 'duplicate-id-evaluate',\n      after: 'duplicate-id-after'\n    }, {\n      id: 'duplicate-id-aria',\n      evaluate: 'duplicate-id-evaluate',\n      after: 'duplicate-id-after'\n    }, {\n      id: 'duplicate-id',\n      evaluate: 'duplicate-id-evaluate',\n      after: 'duplicate-id-after'\n    }, {\n      id: 'aria-label',\n      evaluate: 'aria-label-evaluate'\n    }, {\n      id: 'aria-labelledby',\n      evaluate: 'aria-labelledby-evaluate'\n    }, {\n      id: 'avoid-inline-spacing',\n      evaluate: 'avoid-inline-spacing-evaluate',\n      options: {\n        cssProperties: [ 'line-height', 'letter-spacing', 'word-spacing' ]\n      }\n    }, {\n      id: 'button-has-visible-text',\n      evaluate: 'has-text-content-evaluate'\n    }, {\n      id: 'doc-has-title',\n      evaluate: 'doc-has-title-evaluate'\n    }, {\n      id: 'exists',\n      evaluate: 'exists-evaluate'\n    }, {\n      id: 'has-alt',\n      evaluate: 'has-alt-evaluate'\n    }, {\n      id: 'has-visible-text',\n      evaluate: 'has-text-content-evaluate'\n    }, {\n      id: 'is-on-screen',\n      evaluate: 'is-on-screen-evaluate'\n    }, {\n      id: 'non-empty-alt',\n      evaluate: 'attr-non-space-content-evaluate',\n      options: {\n        attribute: 'alt'\n      }\n    }, {\n      id: 'non-empty-if-present',\n      evaluate: 'non-empty-if-present-evaluate'\n    }, {\n      id: 'non-empty-placeholder',\n      evaluate: 'attr-non-space-content-evaluate',\n      options: {\n        attribute: 'placeholder'\n      }\n    }, {\n      id: 'non-empty-title',\n      evaluate: 'attr-non-space-content-evaluate',\n      options: {\n        attribute: 'title'\n      }\n    }, {\n      id: 'non-empty-value',\n      evaluate: 'attr-non-space-content-evaluate',\n      options: {\n        attribute: 'value'\n      }\n    }, {\n      id: 'presentational-role',\n      evaluate: 'presentational-role-evaluate'\n    }, {\n      id: 'role-none',\n      evaluate: 'matches-definition-evaluate',\n      deprecated: true,\n      options: {\n        matcher: {\n          attributes: {\n            role: 'none'\n          }\n        }\n      }\n    }, {\n      id: 'role-presentation',\n      evaluate: 'matches-definition-evaluate',\n      deprecated: true,\n      options: {\n        matcher: {\n          attributes: {\n            role: 'presentation'\n          }\n        }\n      }\n    }, {\n      id: 'svg-non-empty-title',\n      evaluate: 'svg-non-empty-title-evaluate'\n    }, {\n      id: 'caption-faked',\n      evaluate: 'caption-faked-evaluate'\n    }, {\n      id: 'html5-scope',\n      evaluate: 'html5-scope-evaluate'\n    }, {\n      id: 'same-caption-summary',\n      evaluate: 'same-caption-summary-evaluate'\n    }, {\n      id: 'scope-value',\n      evaluate: 'scope-value-evaluate',\n      options: {\n        values: [ 'row', 'col', 'rowgroup', 'colgroup' ]\n      }\n    }, {\n      id: 'td-has-header',\n      evaluate: 'td-has-header-evaluate'\n    }, {\n      id: 'td-headers-attr',\n      evaluate: 'td-headers-attr-evaluate'\n    }, {\n      id: 'th-has-data-cells',\n      evaluate: 'th-has-data-cells-evaluate'\n    }, {\n      id: 'hidden-content',\n      evaluate: 'hidden-content-evaluate'\n    } ]\n  });\n})(typeof window === 'object' ? window : this);", "export default function(url, options) {\n\toptions = options || {};\n\treturn new Promise( (resolve, reject) => {\n\t\tconst request = new XMLHttpRequest();\n\t\tconst keys = [];\n\t\tconst all = [];\n\t\tconst headers = {};\n\n\t\tconst response = () => ({\n\t\t\tok: (request.status/100|0) == 2,\t\t// 200-299\n\t\t\tstatusText: request.statusText,\n\t\t\tstatus: request.status,\n\t\t\turl: request.responseURL,\n\t\t\ttext: () => Promise.resolve(request.responseText),\n\t\t\tjson: () => Promise.resolve(request.responseText).then(JSON.parse),\n\t\t\tblob: () => Promise.resolve(new Blob([request.response])),\n\t\t\tclone: response,\n\t\t\theaders: {\n\t\t\t\tkeys: () => keys,\n\t\t\t\tentries: () => all,\n\t\t\t\tget: n => headers[n.toLowerCase()],\n\t\t\t\thas: n => n.toLowerCase() in headers\n\t\t\t}\n\t\t});\n\n\t\trequest.open(options.method || 'get', url, true);\n\n\t\trequest.onload = () => {\n\t\t\trequest.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm, (m, key, value) => {\n\t\t\t\tkeys.push(key = key.toLowerCase());\n\t\t\t\tall.push([key, value]);\n\t\t\t\theaders[key] = headers[key] ? `${headers[key]},${value}` : value;\n\t\t\t});\n\t\t\tresolve(response());\n\t\t};\n\n\t\trequest.onerror = reject;\n\n\t\trequest.withCredentials = options.credentials=='include';\n\n\t\tfor (const i in options.headers) {\n\t\t\trequest.setRequestHeader(i, options.headers[i]);\n\t\t}\n\n\t\trequest.send(options.body || null);\n\t});\n}\n", "module.exports = self.fetch || (self.fetch = require('unfetch').default || require('unfetch'));\n", "/*! VelocityJS.org (1.5.2). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */\r\n\r\n/*************************\r\n Velocity jQuery Shim\r\n *************************/\r\n\r\n/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */\r\n\r\n/* This file contains the jQuery functions that Velocity relies on, thereby removing Velocity's dependency on a full copy of jQuery, and allowing it to work in any environment. */\r\n/* These shimmed functions are only used if jQuery isn't present. If both this shim and jQuery are loaded, Velocity defaults to jQuery proper. */\r\n/* Browser support: Using this shim instead of jQuery proper removes support for IE8. */\r\n\r\n(function(window) {\r\n\t\"use strict\";\r\n\t/***************\r\n\t Setup\r\n\t ***************/\r\n\r\n\t/* If jQuery is already loaded, there's no point in loading this shim. */\r\n\tif (window.jQuery) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t/* jQuery base. */\r\n\tvar $ = function(selector, context) {\r\n\t\treturn new $.fn.init(selector, context);\r\n\t};\r\n\r\n\t/********************\r\n\t Private Methods\r\n\t ********************/\r\n\r\n\t/* jQuery */\r\n\t$.isWindow = function(obj) {\r\n\t\t/* jshint eqeqeq: false */\r\n\t\treturn obj && obj === obj.window;\r\n\t};\r\n\r\n\t/* jQuery */\r\n\t$.type = function(obj) {\r\n\t\tif (!obj) {\r\n\t\t\treturn obj + \"\";\r\n\t\t}\r\n\r\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\r\n\t\t\t\tclass2type[toString.call(obj)] || \"object\" :\r\n\t\t\t\ttypeof obj;\r\n\t};\r\n\r\n\t/* jQuery */\r\n\t$.isArray = Array.isArray || function(obj) {\r\n\t\treturn $.type(obj) === \"array\";\r\n\t};\r\n\r\n\t/* jQuery */\r\n\tfunction isArraylike(obj) {\r\n\t\tvar length = obj.length,\r\n\t\t\t\ttype = $.type(obj);\r\n\r\n\t\tif (type === \"function\" || $.isWindow(obj)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (obj.nodeType === 1 && length) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\treturn type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && (length - 1) in obj;\r\n\t}\r\n\r\n\t/***************\r\n\t $ Methods\r\n\t ***************/\r\n\r\n\t/* jQuery: Support removed for IE<9. */\r\n\t$.isPlainObject = function(obj) {\r\n\t\tvar key;\r\n\r\n\t\tif (!obj || $.type(obj) !== \"object\" || obj.nodeType || $.isWindow(obj)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\ttry {\r\n\t\t\tif (obj.constructor &&\r\n\t\t\t\t\t!hasOwn.call(obj, \"constructor\") &&\r\n\t\t\t\t\t!hasOwn.call(obj.constructor.prototype, \"isPrototypeOf\")) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (key in obj) {\r\n\t\t}\r\n\r\n\t\treturn key === undefined || hasOwn.call(obj, key);\r\n\t};\r\n\r\n\t/* jQuery */\r\n\t$.each = function(obj, callback, args) {\r\n\t\tvar value,\r\n\t\t\t\ti = 0,\r\n\t\t\t\tlength = obj.length,\r\n\t\t\t\tisArray = isArraylike(obj);\r\n\r\n\t\tif (args) {\r\n\t\t\tif (isArray) {\r\n\t\t\t\tfor (; i < length; i++) {\r\n\t\t\t\t\tvalue = callback.apply(obj[i], args);\r\n\r\n\t\t\t\t\tif (value === false) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i in obj) {\r\n\t\t\t\t\tif (!obj.hasOwnProperty(i)) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvalue = callback.apply(obj[i], args);\r\n\r\n\t\t\t\t\tif (value === false) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\t\t\tif (isArray) {\r\n\t\t\t\tfor (; i < length; i++) {\r\n\t\t\t\t\tvalue = callback.call(obj[i], i, obj[i]);\r\n\r\n\t\t\t\t\tif (value === false) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i in obj) {\r\n\t\t\t\t\tif (!obj.hasOwnProperty(i)) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvalue = callback.call(obj[i], i, obj[i]);\r\n\r\n\t\t\t\t\tif (value === false) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn obj;\r\n\t};\r\n\r\n\t/* Custom */\r\n\t$.data = function(node, key, value) {\r\n\t\t/* $.getData() */\r\n\t\tif (value === undefined) {\r\n\t\t\tvar getId = node[$.expando],\r\n\t\t\t\t\tstore = getId && cache[getId];\r\n\r\n\t\t\tif (key === undefined) {\r\n\t\t\t\treturn store;\r\n\t\t\t} else if (store) {\r\n\t\t\t\tif (key in store) {\r\n\t\t\t\t\treturn store[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t/* $.setData() */\r\n\t\t} else if (key !== undefined) {\r\n\t\t\tvar setId = node[$.expando] || (node[$.expando] = ++$.uuid);\r\n\r\n\t\t\tcache[setId] = cache[setId] || {};\r\n\t\t\tcache[setId][key] = value;\r\n\r\n\t\t\treturn value;\r\n\t\t}\r\n\t};\r\n\r\n\t/* Custom */\r\n\t$.removeData = function(node, keys) {\r\n\t\tvar id = node[$.expando],\r\n\t\t\t\tstore = id && cache[id];\r\n\r\n\t\tif (store) {\r\n\t\t\t// Cleanup the entire store if no keys are provided.\r\n\t\t\tif (!keys) {\r\n\t\t\t\tdelete cache[id];\r\n\t\t\t} else {\r\n\t\t\t\t$.each(keys, function(_, key) {\r\n\t\t\t\t\tdelete store[key];\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/* jQuery */\r\n\t$.extend = function() {\r\n\t\tvar src, copyIsArray, copy, name, options, clone,\r\n\t\t\t\ttarget = arguments[0] || {},\r\n\t\t\t\ti = 1,\r\n\t\t\t\tlength = arguments.length,\r\n\t\t\t\tdeep = false;\r\n\r\n\t\tif (typeof target === \"boolean\") {\r\n\t\t\tdeep = target;\r\n\r\n\t\t\ttarget = arguments[i] || {};\r\n\t\t\ti++;\r\n\t\t}\r\n\r\n\t\tif (typeof target !== \"object\" && $.type(target) !== \"function\") {\r\n\t\t\ttarget = {};\r\n\t\t}\r\n\r\n\t\tif (i === length) {\r\n\t\t\ttarget = this;\r\n\t\t\ti--;\r\n\t\t}\r\n\r\n\t\tfor (; i < length; i++) {\r\n\t\t\tif ((options = arguments[i])) {\r\n\t\t\t\tfor (name in options) {\r\n\t\t\t\t\tif (!options.hasOwnProperty(name)) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tsrc = target[name];\r\n\t\t\t\t\tcopy = options[name];\r\n\r\n\t\t\t\t\tif (target === copy) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (deep && copy && ($.isPlainObject(copy) || (copyIsArray = $.isArray(copy)))) {\r\n\t\t\t\t\t\tif (copyIsArray) {\r\n\t\t\t\t\t\t\tcopyIsArray = false;\r\n\t\t\t\t\t\t\tclone = src && $.isArray(src) ? src : [];\r\n\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tclone = src && $.isPlainObject(src) ? src : {};\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttarget[name] = $.extend(deep, clone, copy);\r\n\r\n\t\t\t\t\t} else if (copy !== undefined) {\r\n\t\t\t\t\t\ttarget[name] = copy;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t};\r\n\r\n\t/* jQuery 1.4.3 */\r\n\t$.queue = function(elem, type, data) {\r\n\t\tfunction $makeArray(arr, results) {\r\n\t\t\tvar ret = results || [];\r\n\r\n\t\t\tif (arr) {\r\n\t\t\t\tif (isArraylike(Object(arr))) {\r\n\t\t\t\t\t/* $.merge */\r\n\t\t\t\t\t(function(first, second) {\r\n\t\t\t\t\t\tvar len = +second.length,\r\n\t\t\t\t\t\t\t\tj = 0,\r\n\t\t\t\t\t\t\t\ti = first.length;\r\n\r\n\t\t\t\t\t\twhile (j < len) {\r\n\t\t\t\t\t\t\tfirst[i++] = second[j++];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (len !== len) {\r\n\t\t\t\t\t\t\twhile (second[j] !== undefined) {\r\n\t\t\t\t\t\t\t\tfirst[i++] = second[j++];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfirst.length = i;\r\n\r\n\t\t\t\t\t\treturn first;\r\n\t\t\t\t\t})(ret, typeof arr === \"string\" ? [arr] : arr);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t[].push.call(ret, arr);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn ret;\r\n\t\t}\r\n\r\n\t\tif (!elem) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\ttype = (type || \"fx\") + \"queue\";\r\n\r\n\t\tvar q = $.data(elem, type);\r\n\r\n\t\tif (!data) {\r\n\t\t\treturn q || [];\r\n\t\t}\r\n\r\n\t\tif (!q || $.isArray(data)) {\r\n\t\t\tq = $.data(elem, type, $makeArray(data));\r\n\t\t} else {\r\n\t\t\tq.push(data);\r\n\t\t}\r\n\r\n\t\treturn q;\r\n\t};\r\n\r\n\t/* jQuery 1.4.3 */\r\n\t$.dequeue = function(elems, type) {\r\n\t\t/* Custom: Embed element iteration. */\r\n\t\t$.each(elems.nodeType ? [elems] : elems, function(i, elem) {\r\n\t\t\ttype = type || \"fx\";\r\n\r\n\t\t\tvar queue = $.queue(elem, type),\r\n\t\t\t\t\tfn = queue.shift();\r\n\r\n\t\t\tif (fn === \"inprogress\") {\r\n\t\t\t\tfn = queue.shift();\r\n\t\t\t}\r\n\r\n\t\t\tif (fn) {\r\n\t\t\t\tif (type === \"fx\") {\r\n\t\t\t\t\tqueue.unshift(\"inprogress\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfn.call(elem, function() {\r\n\t\t\t\t\t$.dequeue(elem, type);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\t/******************\r\n\t $.fn Methods\r\n\t ******************/\r\n\r\n\t/* jQuery */\r\n\t$.fn = $.prototype = {\r\n\t\tinit: function(selector) {\r\n\t\t\t/* Just return the element wrapped inside an array; don't proceed with the actual jQuery node wrapping process. */\r\n\t\t\tif (selector.nodeType) {\r\n\t\t\t\tthis[0] = selector;\r\n\r\n\t\t\t\treturn this;\r\n\t\t\t} else {\r\n\t\t\t\tthrow new Error(\"Not a DOM node.\");\r\n\t\t\t}\r\n\t\t},\r\n\t\toffset: function() {\r\n\t\t\t/* jQuery altered code: Dropped disconnected DOM node checking. */\r\n\t\t\tvar box = this[0].getBoundingClientRect ? this[0].getBoundingClientRect() : {top: 0, left: 0};\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttop: box.top + (window.pageYOffset || document.scrollTop || 0) - (document.clientTop || 0),\r\n\t\t\t\tleft: box.left + (window.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || 0)\r\n\t\t\t};\r\n\t\t},\r\n\t\tposition: function() {\r\n\t\t\t/* jQuery */\r\n\t\t\tfunction offsetParentFn(elem) {\r\n\t\t\t\tvar offsetParent = elem.offsetParent;\r\n\r\n\t\t\t\twhile (offsetParent && (offsetParent.nodeName.toLowerCase() !== \"html\" && offsetParent.style && offsetParent.style.position.toLowerCase() === \"static\")) {\r\n\t\t\t\t\toffsetParent = offsetParent.offsetParent;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn offsetParent || document;\r\n\t\t\t}\r\n\r\n\t\t\t/* Zepto */\r\n\t\t\tvar elem = this[0],\r\n\t\t\t\t\toffsetParent = offsetParentFn(elem),\r\n\t\t\t\t\toffset = this.offset(),\r\n\t\t\t\t\tparentOffset = /^(?:body|html)$/i.test(offsetParent.nodeName) ? {top: 0, left: 0} : $(offsetParent).offset();\r\n\r\n\t\t\toffset.top -= parseFloat(elem.style.marginTop) || 0;\r\n\t\t\toffset.left -= parseFloat(elem.style.marginLeft) || 0;\r\n\r\n\t\t\tif (offsetParent.style) {\r\n\t\t\t\tparentOffset.top += parseFloat(offsetParent.style.borderTopWidth) || 0;\r\n\t\t\t\tparentOffset.left += parseFloat(offsetParent.style.borderLeftWidth) || 0;\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\ttop: offset.top - parentOffset.top,\r\n\t\t\t\tleft: offset.left - parentOffset.left\r\n\t\t\t};\r\n\t\t}\r\n\t};\r\n\r\n\t/**********************\r\n\t Private Variables\r\n\t **********************/\r\n\r\n\t/* For $.data() */\r\n\tvar cache = {};\r\n\t$.expando = \"velocity\" + (new Date().getTime());\r\n\t$.uuid = 0;\r\n\r\n\t/* For $.queue() */\r\n\tvar class2type = {},\r\n\t\t\thasOwn = class2type.hasOwnProperty,\r\n\t\t\ttoString = class2type.toString;\r\n\r\n\tvar types = \"Boolean Number String Function Array Date RegExp Object Error\".split(\" \");\r\n\tfor (var i = 0; i < types.length; i++) {\r\n\t\tclass2type[\"[object \" + types[i] + \"]\"] = types[i].toLowerCase();\r\n\t}\r\n\r\n\t/* Makes $(node) possible, without having to call init. */\r\n\t$.fn.init.prototype = $.fn;\r\n\r\n\t/* Globalize Velocity onto the window, and assign its Utilities property. */\r\n\twindow.Velocity = {Utilities: $};\r\n})(window);\r\n\r\n/******************\r\n Velocity.js\r\n ******************/\r\n\r\n(function(factory) {\r\n\t\"use strict\";\r\n\t/* CommonJS module. */\r\n\tif (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n\t\tmodule.exports = factory();\r\n\t\t/* AMD module. */\r\n\t} else if (typeof define === \"function\" && define.amd) {\r\n\t\tdefine(factory);\r\n\t\t/* Browser globals. */\r\n\t} else {\r\n\t\tfactory();\r\n\t}\r\n}(function() {\r\n\t\"use strict\";\r\n\treturn function(global, window, document, undefined) {\r\n\r\n\t\t/***************\r\n\t\t Summary\r\n\t\t ***************/\r\n\r\n\t\t/*\r\n\t\t - CSS: CSS stack that works independently from the rest of Velocity.\r\n\t\t - animate(): Core animation method that iterates over the targeted elements and queues the incoming call onto each element individually.\r\n\t\t - Pre-Queueing: Prepare the element for animation by instantiating its data cache and processing the call's options.\r\n\t\t - Queueing: The logic that runs once the call has reached its point of execution in the element's $.queue() stack.\r\n\t\t Most logic is placed here to avoid risking it becoming stale (if the element's properties have changed).\r\n\t\t - Pushing: Consolidation of the tween data followed by its push onto the global in-progress calls container.\r\n\t\t - tick(): The single requestAnimationFrame loop responsible for tweening all in-progress calls.\r\n\t\t - completeCall(): Handles the cleanup process for each Velocity call.\r\n\t\t */\r\n\r\n\t\t/*********************\r\n\t\t Helper Functions\r\n\t\t *********************/\r\n\r\n\t\t/* IE detection. Gist: https://gist.github.com/julianshapiro/9098609 */\r\n\t\tvar IE = (function() {\r\n\t\t\tif (document.documentMode) {\r\n\t\t\t\treturn document.documentMode;\r\n\t\t\t} else {\r\n\t\t\t\tfor (var i = 7; i > 4; i--) {\r\n\t\t\t\t\tvar div = document.createElement(\"div\");\r\n\r\n\t\t\t\t\tdiv.innerHTML = \"<!--[if IE \" + i + \"]><span></span><![endif]-->\";\r\n\r\n\t\t\t\t\tif (div.getElementsByTagName(\"span\").length) {\r\n\t\t\t\t\t\tdiv = null;\r\n\r\n\t\t\t\t\t\treturn i;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn undefined;\r\n\t\t})();\r\n\r\n\t\t/* rAF shim. Gist: https://gist.github.com/julianshapiro/9497513 */\r\n\t\tvar rAFShim = (function() {\r\n\t\t\tvar timeLast = 0;\r\n\r\n\t\t\treturn window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(callback) {\r\n\t\t\t\tvar timeCurrent = (new Date()).getTime(),\r\n\t\t\t\t\t\ttimeDelta;\r\n\r\n\t\t\t\t/* Dynamically set delay on a per-tick basis to match 60fps. */\r\n\t\t\t\t/* Technique by Erik Moller. MIT license: https://gist.github.com/paulirish/1579671 */\r\n\t\t\t\ttimeDelta = Math.max(0, 16 - (timeCurrent - timeLast));\r\n\t\t\t\ttimeLast = timeCurrent + timeDelta;\r\n\r\n\t\t\t\treturn setTimeout(function() {\r\n\t\t\t\t\tcallback(timeCurrent + timeDelta);\r\n\t\t\t\t}, timeDelta);\r\n\t\t\t};\r\n\t\t})();\r\n\r\n\t\tvar performance = (function() {\r\n\t\t\tvar perf = window.performance || {};\r\n\r\n\t\t\tif (typeof perf.now !== \"function\") {\r\n\t\t\t\tvar nowOffset = perf.timing && perf.timing.navigationStart ? perf.timing.navigationStart : (new Date()).getTime();\r\n\r\n\t\t\t\tperf.now = function() {\r\n\t\t\t\t\treturn (new Date()).getTime() - nowOffset;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\treturn perf;\r\n\t\t})();\r\n\r\n\t\t/* Array compacting. Copyright Lo-Dash. MIT License: https://github.com/lodash/lodash/blob/master/LICENSE.txt */\r\n\t\tfunction compactSparseArray(array) {\r\n\t\t\tvar index = -1,\r\n\t\t\t\t\tlength = array ? array.length : 0,\r\n\t\t\t\t\tresult = [];\r\n\r\n\t\t\twhile (++index < length) {\r\n\t\t\t\tvar value = array[index];\r\n\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tresult.push(value);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Shim for \"fixing\" IE's lack of support (IE < 9) for applying slice\r\n\t\t * on host objects like NamedNodeMap, NodeList, and HTMLCollection\r\n\t\t * (technically, since host objects have been implementation-dependent,\r\n\t\t * at least before ES2015, IE hasn't needed to work this way).\r\n\t\t * Also works on strings, fixes IE < 9 to allow an explicit undefined\r\n\t\t * for the 2nd argument (as in Firefox), and prevents errors when\r\n\t\t * called on other DOM objects.\r\n\t\t */\r\n\t\tvar _slice = (function() {\r\n\t\t\tvar slice = Array.prototype.slice;\r\n\r\n\t\t\ttry {\r\n\t\t\t\t// Can't be used with DOM elements in IE < 9\r\n\t\t\t\tslice.call(document.documentElement);\r\n\t\t\t\treturn slice;\r\n\t\t\t} catch (e) { // Fails in IE < 9\r\n\r\n\t\t\t\t// This will work for genuine arrays, array-like objects, \r\n\t\t\t\t// NamedNodeMap (attributes, entities, notations),\r\n\t\t\t\t// NodeList (e.g., getElementsByTagName), HTMLCollection (e.g., childNodes),\r\n\t\t\t\t// and will not fail on other DOM objects (as do DOM elements in IE < 9)\r\n\t\t\t\treturn function(begin, end) {\r\n\t\t\t\t\tvar len = this.length;\r\n\r\n\t\t\t\t\tif (typeof begin !== \"number\") {\r\n\t\t\t\t\t\tbegin = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// IE < 9 gets unhappy with an undefined end argument\r\n\t\t\t\t\tif (typeof end !== \"number\") {\r\n\t\t\t\t\t\tend = len;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// For native Array objects, we use the native slice function\r\n\t\t\t\t\tif (this.slice) {\r\n\t\t\t\t\t\treturn slice.call(this, begin, end);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// For array like object we handle it ourselves.\r\n\t\t\t\t\tvar i,\r\n\t\t\t\t\t\t\tcloned = [],\r\n\t\t\t\t\t\t\t// Handle negative value for \"begin\"\r\n\t\t\t\t\t\t\tstart = (begin >= 0) ? begin : Math.max(0, len + begin),\r\n\t\t\t\t\t\t\t// Handle negative value for \"end\"\r\n\t\t\t\t\t\t\tupTo = end < 0 ? len + end : Math.min(end, len),\r\n\t\t\t\t\t\t\t// Actual expected size of the slice\r\n\t\t\t\t\t\t\tsize = upTo - start;\r\n\r\n\t\t\t\t\tif (size > 0) {\r\n\t\t\t\t\t\tcloned = new Array(size);\r\n\t\t\t\t\t\tif (this.charAt) {\r\n\t\t\t\t\t\t\tfor (i = 0; i < size; i++) {\r\n\t\t\t\t\t\t\t\tcloned[i] = this.charAt(start + i);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tfor (i = 0; i < size; i++) {\r\n\t\t\t\t\t\t\t\tcloned[i] = this[start + i];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn cloned;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t})();\r\n\r\n\t\t/* .indexOf doesn't exist in IE<9 */\r\n\t\tvar _inArray = (function() {\r\n\t\t\tif (Array.prototype.includes) {\r\n\t\t\t\treturn function(arr, val) {\r\n\t\t\t\t\treturn arr.includes(val);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tif (Array.prototype.indexOf) {\r\n\t\t\t\treturn function(arr, val) {\r\n\t\t\t\t\treturn arr.indexOf(val) >= 0;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\treturn function(arr, val) {\r\n\t\t\t\tfor (var i = 0; i < arr.length; i++) {\r\n\t\t\t\t\tif (arr[i] === val) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tfunction sanitizeElements(elements) {\r\n\t\t\t/* Unwrap jQuery/Zepto objects. */\r\n\t\t\tif (Type.isWrapped(elements)) {\r\n\t\t\t\telements = _slice.call(elements);\r\n\t\t\t\t/* Wrap a single element in an array so that $.each() can iterate with the element instead of its node's children. */\r\n\t\t\t} else if (Type.isNode(elements)) {\r\n\t\t\t\telements = [elements];\r\n\t\t\t}\r\n\r\n\t\t\treturn elements;\r\n\t\t}\r\n\r\n\t\tvar Type = {\r\n\t\t\tisNumber: function(variable) {\r\n\t\t\t\treturn (typeof variable === \"number\");\r\n\t\t\t},\r\n\t\t\tisString: function(variable) {\r\n\t\t\t\treturn (typeof variable === \"string\");\r\n\t\t\t},\r\n\t\t\tisArray: Array.isArray || function(variable) {\r\n\t\t\t\treturn Object.prototype.toString.call(variable) === \"[object Array]\";\r\n\t\t\t},\r\n\t\t\tisFunction: function(variable) {\r\n\t\t\t\treturn Object.prototype.toString.call(variable) === \"[object Function]\";\r\n\t\t\t},\r\n\t\t\tisNode: function(variable) {\r\n\t\t\t\treturn variable && variable.nodeType;\r\n\t\t\t},\r\n\t\t\t/* Determine if variable is an array-like wrapped jQuery, Zepto or similar element, or even a NodeList etc. */\r\n\t\t\t/* NOTE: HTMLFormElements also have a length. */\r\n\t\t\tisWrapped: function(variable) {\r\n\t\t\t\treturn variable\r\n\t\t\t\t\t\t&& variable !== window\r\n\t\t\t\t\t\t&& Type.isNumber(variable.length)\r\n\t\t\t\t\t\t&& !Type.isString(variable)\r\n\t\t\t\t\t\t&& !Type.isFunction(variable)\r\n\t\t\t\t\t\t&& !Type.isNode(variable)\r\n\t\t\t\t\t\t&& (variable.length === 0 || Type.isNode(variable[0]));\r\n\t\t\t},\r\n\t\t\tisSVG: function(variable) {\r\n\t\t\t\treturn window.SVGElement && (variable instanceof window.SVGElement);\r\n\t\t\t},\r\n\t\t\tisEmptyObject: function(variable) {\r\n\t\t\t\tfor (var name in variable) {\r\n\t\t\t\t\tif (variable.hasOwnProperty(name)) {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/*****************\r\n\t\t Dependencies\r\n\t\t *****************/\r\n\r\n\t\tvar $,\r\n\t\t\t\tisJQuery = false;\r\n\r\n\t\tif (global.fn && global.fn.jquery) {\r\n\t\t\t$ = global;\r\n\t\t\tisJQuery = true;\r\n\t\t} else {\r\n\t\t\t$ = window.Velocity.Utilities;\r\n\t\t}\r\n\r\n\t\tif (IE <= 8 && !isJQuery) {\r\n\t\t\tthrow new Error(\"Velocity: IE8 and below require jQuery to be loaded before Velocity.\");\r\n\t\t} else if (IE <= 7) {\r\n\t\t\t/* Revert to jQuery's $.animate(), and lose Velocity's extra features. */\r\n\t\t\tjQuery.fn.velocity = jQuery.fn.animate;\r\n\r\n\t\t\t/* Now that $.fn.velocity is aliased, abort this Velocity declaration. */\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t/*****************\r\n\t\t Constants\r\n\t\t *****************/\r\n\r\n\t\tvar DURATION_DEFAULT = 400,\r\n\t\t\t\tEASING_DEFAULT = \"swing\";\r\n\r\n\t\t/*************\r\n\t\t State\r\n\t\t *************/\r\n\r\n\t\tvar Velocity = {\r\n\t\t\t/* Container for page-wide Velocity state data. */\r\n\t\t\tState: {\r\n\t\t\t\t/* Detect mobile devices to determine if mobileHA should be turned on. */\r\n\t\t\t\tisMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(window.navigator.userAgent),\r\n\t\t\t\t/* The mobileHA option's behavior changes on older Android devices (Gingerbread, versions 2.3.3-2.3.7). */\r\n\t\t\t\tisAndroid: /Android/i.test(window.navigator.userAgent),\r\n\t\t\t\tisGingerbread: /Android 2\\.3\\.[3-7]/i.test(window.navigator.userAgent),\r\n\t\t\t\tisChrome: window.chrome,\r\n\t\t\t\tisFirefox: /Firefox/i.test(window.navigator.userAgent),\r\n\t\t\t\t/* Create a cached element for re-use when checking for CSS property prefixes. */\r\n\t\t\t\tprefixElement: document.createElement(\"div\"),\r\n\t\t\t\t/* Cache every prefix match to avoid repeating lookups. */\r\n\t\t\t\tprefixMatches: {},\r\n\t\t\t\t/* Cache the anchor used for animating window scrolling. */\r\n\t\t\t\tscrollAnchor: null,\r\n\t\t\t\t/* Cache the browser-specific property names associated with the scroll anchor. */\r\n\t\t\t\tscrollPropertyLeft: null,\r\n\t\t\t\tscrollPropertyTop: null,\r\n\t\t\t\t/* Keep track of whether our RAF tick is running. */\r\n\t\t\t\tisTicking: false,\r\n\t\t\t\t/* Container for every in-progress call to Velocity. */\r\n\t\t\t\tcalls: [],\r\n\t\t\t\tdelayedElements: {\r\n\t\t\t\t\tcount: 0\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/* Velocity's custom CSS stack. Made global for unit testing. */\r\n\t\t\tCSS: {/* Defined below. */},\r\n\t\t\t/* A shim of the jQuery utility functions used by Velocity -- provided by Velocity's optional jQuery shim. */\r\n\t\t\tUtilities: $,\r\n\t\t\t/* Container for the user's custom animation redirects that are referenced by name in place of the properties map argument. */\r\n\t\t\tRedirects: {/* Manually registered by the user. */},\r\n\t\t\tEasings: {/* Defined below. */},\r\n\t\t\t/* Attempt to use ES6 Promises by default. Users can override this with a third-party promises library. */\r\n\t\t\tPromise: window.Promise,\r\n\t\t\t/* Velocity option defaults, which can be overriden by the user. */\r\n\t\t\tdefaults: {\r\n\t\t\t\tqueue: \"\",\r\n\t\t\t\tduration: DURATION_DEFAULT,\r\n\t\t\t\teasing: EASING_DEFAULT,\r\n\t\t\t\tbegin: undefined,\r\n\t\t\t\tcomplete: undefined,\r\n\t\t\t\tprogress: undefined,\r\n\t\t\t\tdisplay: undefined,\r\n\t\t\t\tvisibility: undefined,\r\n\t\t\t\tloop: false,\r\n\t\t\t\tdelay: false,\r\n\t\t\t\tmobileHA: true,\r\n\t\t\t\t/* Advanced: Set to false to prevent property values from being cached between consecutive Velocity-initiated chain calls. */\r\n\t\t\t\t_cacheValues: true,\r\n\t\t\t\t/* Advanced: Set to false if the promise should always resolve on empty element lists. */\r\n\t\t\t\tpromiseRejectEmpty: true\r\n\t\t\t},\r\n\t\t\t/* A design goal of Velocity is to cache data wherever possible in order to avoid DOM requerying. Accordingly, each element has a data cache. */\r\n\t\t\tinit: function(element) {\r\n\t\t\t\t$.data(element, \"velocity\", {\r\n\t\t\t\t\t/* Store whether this is an SVG element, since its properties are retrieved and updated differently than standard HTML elements. */\r\n\t\t\t\t\tisSVG: Type.isSVG(element),\r\n\t\t\t\t\t/* Keep track of whether the element is currently being animated by Velocity.\r\n\t\t\t\t\t This is used to ensure that property values are not transferred between non-consecutive (stale) calls. */\r\n\t\t\t\t\tisAnimating: false,\r\n\t\t\t\t\t/* A reference to the element's live computedStyle object. Learn more here: https://developer.mozilla.org/en/docs/Web/API/window.getComputedStyle */\r\n\t\t\t\t\tcomputedStyle: null,\r\n\t\t\t\t\t/* Tween data is cached for each animation on the element so that data can be passed across calls --\r\n\t\t\t\t\t in particular, end values are used as subsequent start values in consecutive Velocity calls. */\r\n\t\t\t\t\ttweensContainer: null,\r\n\t\t\t\t\t/* The full root property values of each CSS hook being animated on this element are cached so that:\r\n\t\t\t\t\t 1) Concurrently-animating hooks sharing the same root can have their root values' merged into one while tweening.\r\n\t\t\t\t\t 2) Post-hook-injection root values can be transferred over to consecutively chained Velocity calls as starting root values. */\r\n\t\t\t\t\trootPropertyValueCache: {},\r\n\t\t\t\t\t/* A cache for transform updates, which must be manually flushed via CSS.flushTransformCache(). */\r\n\t\t\t\t\ttransformCache: {}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t/* A parallel to jQuery's $.css(), used for getting/setting Velocity's hooked CSS properties. */\r\n\t\t\thook: null, /* Defined below. */\r\n\t\t\t/* Velocity-wide animation time remapping for testing purposes. */\r\n\t\t\tmock: false,\r\n\t\t\tversion: {major: 1, minor: 5, patch: 2},\r\n\t\t\t/* Set to 1 or 2 (most verbose) to output debug info to console. */\r\n\t\t\tdebug: false,\r\n\t\t\t/* Use rAF high resolution timestamp when available */\r\n\t\t\ttimestamp: true,\r\n\t\t\t/* Pause all animations */\r\n\t\t\tpauseAll: function(queueName) {\r\n\t\t\t\tvar currentTime = (new Date()).getTime();\r\n\r\n\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\r\n\t\t\t\t\tif (activeCall) {\r\n\r\n\t\t\t\t\t\t/* If we have a queueName and this call is not on that queue, skip */\r\n\t\t\t\t\t\tif (queueName !== undefined && ((activeCall[2].queue !== queueName) || (activeCall[2].queue === false))) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Set call to paused */\r\n\t\t\t\t\t\tactiveCall[5] = {\r\n\t\t\t\t\t\t\tresume: false\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t/* Pause timers on any currently delayed calls */\r\n\t\t\t\t$.each(Velocity.State.delayedElements, function(k, element) {\r\n\t\t\t\t\tif (!element) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpauseDelayOnElement(element, currentTime);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t/* Resume all animations */\r\n\t\t\tresumeAll: function(queueName) {\r\n\t\t\t\tvar currentTime = (new Date()).getTime();\r\n\r\n\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\r\n\t\t\t\t\tif (activeCall) {\r\n\r\n\t\t\t\t\t\t/* If we have a queueName and this call is not on that queue, skip */\r\n\t\t\t\t\t\tif (queueName !== undefined && ((activeCall[2].queue !== queueName) || (activeCall[2].queue === false))) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Set call to resumed if it was paused */\r\n\t\t\t\t\t\tif (activeCall[5]) {\r\n\t\t\t\t\t\t\tactiveCall[5].resume = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\t/* Resume timers on any currently delayed calls */\r\n\t\t\t\t$.each(Velocity.State.delayedElements, function(k, element) {\r\n\t\t\t\t\tif (!element) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tresumeDelayOnElement(element, currentTime);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/* Retrieve the appropriate scroll anchor and property name for the browser: https://developer.mozilla.org/en-US/docs/Web/API/Window.scrollY */\r\n\t\tif (window.pageYOffset !== undefined) {\r\n\t\t\tVelocity.State.scrollAnchor = window;\r\n\t\t\tVelocity.State.scrollPropertyLeft = \"pageXOffset\";\r\n\t\t\tVelocity.State.scrollPropertyTop = \"pageYOffset\";\r\n\t\t} else {\r\n\t\t\tVelocity.State.scrollAnchor = document.documentElement || document.body.parentNode || document.body;\r\n\t\t\tVelocity.State.scrollPropertyLeft = \"scrollLeft\";\r\n\t\t\tVelocity.State.scrollPropertyTop = \"scrollTop\";\r\n\t\t}\r\n\r\n\t\t/* Shorthand alias for jQuery's $.data() utility. */\r\n\t\tfunction Data(element) {\r\n\t\t\t/* Hardcode a reference to the plugin name. */\r\n\t\t\tvar response = $.data(element, \"velocity\");\r\n\r\n\t\t\t/* jQuery <=1.4.2 returns null instead of undefined when no match is found. We normalize this behavior. */\r\n\t\t\treturn response === null ? undefined : response;\r\n\t\t}\r\n\r\n\t\t/**************\r\n\t\t Delay Timer\r\n\t\t **************/\r\n\r\n\t\tfunction pauseDelayOnElement(element, currentTime) {\r\n\t\t\t/* Check for any delay timers, and pause the set timeouts (while preserving time data)\r\n\t\t\t to be resumed when the \"resume\" command is issued */\r\n\t\t\tvar data = Data(element);\r\n\t\t\tif (data && data.delayTimer && !data.delayPaused) {\r\n\t\t\t\tdata.delayRemaining = data.delay - currentTime + data.delayBegin;\r\n\t\t\t\tdata.delayPaused = true;\r\n\t\t\t\tclearTimeout(data.delayTimer.setTimeout);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction resumeDelayOnElement(element, currentTime) {\r\n\t\t\t/* Check for any paused timers and resume */\r\n\t\t\tvar data = Data(element);\r\n\t\t\tif (data && data.delayTimer && data.delayPaused) {\r\n\t\t\t\t/* If the element was mid-delay, re initiate the timeout with the remaining delay */\r\n\t\t\t\tdata.delayPaused = false;\r\n\t\t\t\tdata.delayTimer.setTimeout = setTimeout(data.delayTimer.next, data.delayRemaining);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\r\n\r\n\t\t/**************\r\n\t\t Easing\r\n\t\t **************/\r\n\r\n\t\t/* Step easing generator. */\r\n\t\tfunction generateStep(steps) {\r\n\t\t\treturn function(p) {\r\n\t\t\t\treturn Math.round(p * steps) * (1 / steps);\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t/* Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */\r\n\t\tfunction generateBezier(mX1, mY1, mX2, mY2) {\r\n\t\t\tvar NEWTON_ITERATIONS = 4,\r\n\t\t\t\t\tNEWTON_MIN_SLOPE = 0.001,\r\n\t\t\t\t\tSUBDIVISION_PRECISION = 0.0000001,\r\n\t\t\t\t\tSUBDIVISION_MAX_ITERATIONS = 10,\r\n\t\t\t\t\tkSplineTableSize = 11,\r\n\t\t\t\t\tkSampleStepSize = 1.0 / (kSplineTableSize - 1.0),\r\n\t\t\t\t\tfloat32ArraySupported = \"Float32Array\" in window;\r\n\r\n\t\t\t/* Must contain four arguments. */\r\n\t\t\tif (arguments.length !== 4) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t/* Arguments must be numbers. */\r\n\t\t\tfor (var i = 0; i < 4; ++i) {\r\n\t\t\t\tif (typeof arguments[i] !== \"number\" || isNaN(arguments[i]) || !isFinite(arguments[i])) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/* X values must be in the [0, 1] range. */\r\n\t\t\tmX1 = Math.min(mX1, 1);\r\n\t\t\tmX2 = Math.min(mX2, 1);\r\n\t\t\tmX1 = Math.max(mX1, 0);\r\n\t\t\tmX2 = Math.max(mX2, 0);\r\n\r\n\t\t\tvar mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n\r\n\t\t\tfunction A(aA1, aA2) {\r\n\t\t\t\treturn 1.0 - 3.0 * aA2 + 3.0 * aA1;\r\n\t\t\t}\r\n\t\t\tfunction B(aA1, aA2) {\r\n\t\t\t\treturn 3.0 * aA2 - 6.0 * aA1;\r\n\t\t\t}\r\n\t\t\tfunction C(aA1) {\r\n\t\t\t\treturn 3.0 * aA1;\r\n\t\t\t}\r\n\r\n\t\t\tfunction calcBezier(aT, aA1, aA2) {\r\n\t\t\t\treturn ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getSlope(aT, aA1, aA2) {\r\n\t\t\t\treturn 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n\t\t\t}\r\n\r\n\t\t\tfunction newtonRaphsonIterate(aX, aGuessT) {\r\n\t\t\t\tfor (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n\t\t\t\t\tvar currentSlope = getSlope(aGuessT, mX1, mX2);\r\n\r\n\t\t\t\t\tif (currentSlope === 0.0) {\r\n\t\t\t\t\t\treturn aGuessT;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n\t\t\t\t\taGuessT -= currentX / currentSlope;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn aGuessT;\r\n\t\t\t}\r\n\r\n\t\t\tfunction calcSampleValues() {\r\n\t\t\t\tfor (var i = 0; i < kSplineTableSize; ++i) {\r\n\t\t\t\t\tmSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction binarySubdivide(aX, aA, aB) {\r\n\t\t\t\tvar currentX, currentT, i = 0;\r\n\r\n\t\t\t\tdo {\r\n\t\t\t\t\tcurrentT = aA + (aB - aA) / 2.0;\r\n\t\t\t\t\tcurrentX = calcBezier(currentT, mX1, mX2) - aX;\r\n\t\t\t\t\tif (currentX > 0.0) {\r\n\t\t\t\t\t\taB = currentT;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\taA = currentT;\r\n\t\t\t\t\t}\r\n\t\t\t\t} while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n\r\n\t\t\t\treturn currentT;\r\n\t\t\t}\r\n\r\n\t\t\tfunction getTForX(aX) {\r\n\t\t\t\tvar intervalStart = 0.0,\r\n\t\t\t\t\t\tcurrentSample = 1,\r\n\t\t\t\t\t\tlastSample = kSplineTableSize - 1;\r\n\r\n\t\t\t\tfor (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n\t\t\t\t\tintervalStart += kSampleStepSize;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t--currentSample;\r\n\r\n\t\t\t\tvar dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]),\r\n\t\t\t\t\t\tguessForT = intervalStart + dist * kSampleStepSize,\r\n\t\t\t\t\t\tinitialSlope = getSlope(guessForT, mX1, mX2);\r\n\r\n\t\t\t\tif (initialSlope >= NEWTON_MIN_SLOPE) {\r\n\t\t\t\t\treturn newtonRaphsonIterate(aX, guessForT);\r\n\t\t\t\t} else if (initialSlope === 0.0) {\r\n\t\t\t\t\treturn guessForT;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar _precomputed = false;\r\n\r\n\t\t\tfunction precompute() {\r\n\t\t\t\t_precomputed = true;\r\n\t\t\t\tif (mX1 !== mY1 || mX2 !== mY2) {\r\n\t\t\t\t\tcalcSampleValues();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar f = function(aX) {\r\n\t\t\t\tif (!_precomputed) {\r\n\t\t\t\t\tprecompute();\r\n\t\t\t\t}\r\n\t\t\t\tif (mX1 === mY1 && mX2 === mY2) {\r\n\t\t\t\t\treturn aX;\r\n\t\t\t\t}\r\n\t\t\t\tif (aX === 0) {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\t\t\t\tif (aX === 1) {\r\n\t\t\t\t\treturn 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn calcBezier(getTForX(aX), mY1, mY2);\r\n\t\t\t};\r\n\r\n\t\t\tf.getControlPoints = function() {\r\n\t\t\t\treturn [{x: mX1, y: mY1}, {x: mX2, y: mY2}];\r\n\t\t\t};\r\n\r\n\t\t\tvar str = \"generateBezier(\" + [mX1, mY1, mX2, mY2] + \")\";\r\n\t\t\tf.toString = function() {\r\n\t\t\t\treturn str;\r\n\t\t\t};\r\n\r\n\t\t\treturn f;\r\n\t\t}\r\n\r\n\t\t/* Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */\r\n\t\t/* Given a tension, friction, and duration, a simulation at 60FPS will first run without a defined duration in order to calculate the full path. A second pass\r\n\t\t then adjusts the time delta -- using the relation between actual time and duration -- to calculate the path for the duration-constrained animation. */\r\n\t\tvar generateSpringRK4 = (function() {\r\n\t\t\tfunction springAccelerationForState(state) {\r\n\t\t\t\treturn (-state.tension * state.x) - (state.friction * state.v);\r\n\t\t\t}\r\n\r\n\t\t\tfunction springEvaluateStateWithDerivative(initialState, dt, derivative) {\r\n\t\t\t\tvar state = {\r\n\t\t\t\t\tx: initialState.x + derivative.dx * dt,\r\n\t\t\t\t\tv: initialState.v + derivative.dv * dt,\r\n\t\t\t\t\ttension: initialState.tension,\r\n\t\t\t\t\tfriction: initialState.friction\r\n\t\t\t\t};\r\n\r\n\t\t\t\treturn {dx: state.v, dv: springAccelerationForState(state)};\r\n\t\t\t}\r\n\r\n\t\t\tfunction springIntegrateState(state, dt) {\r\n\t\t\t\tvar a = {\r\n\t\t\t\t\tdx: state.v,\r\n\t\t\t\t\tdv: springAccelerationForState(state)\r\n\t\t\t\t},\r\n\t\t\t\t\t\tb = springEvaluateStateWithDerivative(state, dt * 0.5, a),\r\n\t\t\t\t\t\tc = springEvaluateStateWithDerivative(state, dt * 0.5, b),\r\n\t\t\t\t\t\td = springEvaluateStateWithDerivative(state, dt, c),\r\n\t\t\t\t\t\tdxdt = 1.0 / 6.0 * (a.dx + 2.0 * (b.dx + c.dx) + d.dx),\r\n\t\t\t\t\t\tdvdt = 1.0 / 6.0 * (a.dv + 2.0 * (b.dv + c.dv) + d.dv);\r\n\r\n\t\t\t\tstate.x = state.x + dxdt * dt;\r\n\t\t\t\tstate.v = state.v + dvdt * dt;\r\n\r\n\t\t\t\treturn state;\r\n\t\t\t}\r\n\r\n\t\t\treturn function springRK4Factory(tension, friction, duration) {\r\n\r\n\t\t\t\tvar initState = {\r\n\t\t\t\t\tx: -1,\r\n\t\t\t\t\tv: 0,\r\n\t\t\t\t\ttension: null,\r\n\t\t\t\t\tfriction: null\r\n\t\t\t\t},\r\n\t\t\t\t\t\tpath = [0],\r\n\t\t\t\t\t\ttime_lapsed = 0,\r\n\t\t\t\t\t\ttolerance = 1 / 10000,\r\n\t\t\t\t\t\tDT = 16 / 1000,\r\n\t\t\t\t\t\thave_duration, dt, last_state;\r\n\r\n\t\t\t\ttension = parseFloat(tension) || 500;\r\n\t\t\t\tfriction = parseFloat(friction) || 20;\r\n\t\t\t\tduration = duration || null;\r\n\r\n\t\t\t\tinitState.tension = tension;\r\n\t\t\t\tinitState.friction = friction;\r\n\r\n\t\t\t\thave_duration = duration !== null;\r\n\r\n\t\t\t\t/* Calculate the actual time it takes for this animation to complete with the provided conditions. */\r\n\t\t\t\tif (have_duration) {\r\n\t\t\t\t\t/* Run the simulation without a duration. */\r\n\t\t\t\t\ttime_lapsed = springRK4Factory(tension, friction);\r\n\t\t\t\t\t/* Compute the adjusted time delta. */\r\n\t\t\t\t\tdt = time_lapsed / duration * DT;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdt = DT;\r\n\t\t\t\t}\r\n\r\n\t\t\t\twhile (true) {\r\n\t\t\t\t\t/* Next/step function .*/\r\n\t\t\t\t\tlast_state = springIntegrateState(last_state || initState, dt);\r\n\t\t\t\t\t/* Store the position. */\r\n\t\t\t\t\tpath.push(1 + last_state.x);\r\n\t\t\t\t\ttime_lapsed += 16;\r\n\t\t\t\t\t/* If the change threshold is reached, break. */\r\n\t\t\t\t\tif (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* If duration is not defined, return the actual time required for completing this animation. Otherwise, return a closure that holds the\r\n\t\t\t\t computed path and returns a snapshot of the position according to a given percentComplete. */\r\n\t\t\t\treturn !have_duration ? time_lapsed : function(percentComplete) {\r\n\t\t\t\t\treturn path[ (percentComplete * (path.length - 1)) | 0 ];\r\n\t\t\t\t};\r\n\t\t\t};\r\n\t\t}());\r\n\r\n\t\t/* jQuery easings. */\r\n\t\tVelocity.Easings = {\r\n\t\t\tlinear: function(p) {\r\n\t\t\t\treturn p;\r\n\t\t\t},\r\n\t\t\tswing: function(p) {\r\n\t\t\t\treturn 0.5 - Math.cos(p * Math.PI) / 2;\r\n\t\t\t},\r\n\t\t\t/* Bonus \"spring\" easing, which is a less exaggerated version of easeInOutElastic. */\r\n\t\t\tspring: function(p) {\r\n\t\t\t\treturn 1 - (Math.cos(p * 4.5 * Math.PI) * Math.exp(-p * 6));\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/* CSS3 and Robert Penner easings. */\r\n\t\t$.each(\r\n\t\t\t\t[\r\n\t\t\t\t\t[\"ease\", [0.25, 0.1, 0.25, 1.0]],\r\n\t\t\t\t\t[\"ease-in\", [0.42, 0.0, 1.00, 1.0]],\r\n\t\t\t\t\t[\"ease-out\", [0.00, 0.0, 0.58, 1.0]],\r\n\t\t\t\t\t[\"ease-in-out\", [0.42, 0.0, 0.58, 1.0]],\r\n\t\t\t\t\t[\"easeInSine\", [0.47, 0, 0.745, 0.715]],\r\n\t\t\t\t\t[\"easeOutSine\", [0.39, 0.575, 0.565, 1]],\r\n\t\t\t\t\t[\"easeInOutSine\", [0.445, 0.05, 0.55, 0.95]],\r\n\t\t\t\t\t[\"easeInQuad\", [0.55, 0.085, 0.68, 0.53]],\r\n\t\t\t\t\t[\"easeOutQuad\", [0.25, 0.46, 0.45, 0.94]],\r\n\t\t\t\t\t[\"easeInOutQuad\", [0.455, 0.03, 0.515, 0.955]],\r\n\t\t\t\t\t[\"easeInCubic\", [0.55, 0.055, 0.675, 0.19]],\r\n\t\t\t\t\t[\"easeOutCubic\", [0.215, 0.61, 0.355, 1]],\r\n\t\t\t\t\t[\"easeInOutCubic\", [0.645, 0.045, 0.355, 1]],\r\n\t\t\t\t\t[\"easeInQuart\", [0.895, 0.03, 0.685, 0.22]],\r\n\t\t\t\t\t[\"easeOutQuart\", [0.165, 0.84, 0.44, 1]],\r\n\t\t\t\t\t[\"easeInOutQuart\", [0.77, 0, 0.175, 1]],\r\n\t\t\t\t\t[\"easeInQuint\", [0.755, 0.05, 0.855, 0.06]],\r\n\t\t\t\t\t[\"easeOutQuint\", [0.23, 1, 0.32, 1]],\r\n\t\t\t\t\t[\"easeInOutQuint\", [0.86, 0, 0.07, 1]],\r\n\t\t\t\t\t[\"easeInExpo\", [0.95, 0.05, 0.795, 0.035]],\r\n\t\t\t\t\t[\"easeOutExpo\", [0.19, 1, 0.22, 1]],\r\n\t\t\t\t\t[\"easeInOutExpo\", [1, 0, 0, 1]],\r\n\t\t\t\t\t[\"easeInCirc\", [0.6, 0.04, 0.98, 0.335]],\r\n\t\t\t\t\t[\"easeOutCirc\", [0.075, 0.82, 0.165, 1]],\r\n\t\t\t\t\t[\"easeInOutCirc\", [0.785, 0.135, 0.15, 0.86]]\r\n\t\t\t\t], function(i, easingArray) {\r\n\t\t\tVelocity.Easings[easingArray[0]] = generateBezier.apply(null, easingArray[1]);\r\n\t\t});\r\n\r\n\t\t/* Determine the appropriate easing type given an easing input. */\r\n\t\tfunction getEasing(value, duration) {\r\n\t\t\tvar easing = value;\r\n\r\n\t\t\t/* The easing option can either be a string that references a pre-registered easing,\r\n\t\t\t or it can be a two-/four-item array of integers to be converted into a bezier/spring function. */\r\n\t\t\tif (Type.isString(value)) {\r\n\t\t\t\t/* Ensure that the easing has been assigned to jQuery's Velocity.Easings object. */\r\n\t\t\t\tif (!Velocity.Easings[value]) {\r\n\t\t\t\t\teasing = false;\r\n\t\t\t\t}\r\n\t\t\t} else if (Type.isArray(value) && value.length === 1) {\r\n\t\t\t\teasing = generateStep.apply(null, value);\r\n\t\t\t} else if (Type.isArray(value) && value.length === 2) {\r\n\t\t\t\t/* springRK4 must be passed the animation's duration. */\r\n\t\t\t\t/* Note: If the springRK4 array contains non-numbers, generateSpringRK4() returns an easing\r\n\t\t\t\t function generated with default tension and friction values. */\r\n\t\t\t\teasing = generateSpringRK4.apply(null, value.concat([duration]));\r\n\t\t\t} else if (Type.isArray(value) && value.length === 4) {\r\n\t\t\t\t/* Note: If the bezier array contains non-numbers, generateBezier() returns false. */\r\n\t\t\t\teasing = generateBezier.apply(null, value);\r\n\t\t\t} else {\r\n\t\t\t\teasing = false;\r\n\t\t\t}\r\n\r\n\t\t\t/* Revert to the Velocity-wide default easing type, or fall back to \"swing\" (which is also jQuery's default)\r\n\t\t\t if the Velocity-wide default has been incorrectly modified. */\r\n\t\t\tif (easing === false) {\r\n\t\t\t\tif (Velocity.Easings[Velocity.defaults.easing]) {\r\n\t\t\t\t\teasing = Velocity.defaults.easing;\r\n\t\t\t\t} else {\r\n\t\t\t\t\teasing = EASING_DEFAULT;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn easing;\r\n\t\t}\r\n\r\n\t\t/*****************\r\n\t\t CSS Stack\r\n\t\t *****************/\r\n\r\n\t\t/* The CSS object is a highly condensed and performant CSS stack that fully replaces jQuery's.\r\n\t\t It handles the validation, getting, and setting of both standard CSS properties and CSS property hooks. */\r\n\t\t/* Note: A \"CSS\" shorthand is aliased so that our code is easier to read. */\r\n\t\tvar CSS = Velocity.CSS = {\r\n\t\t\t/*************\r\n\t\t\t RegEx\r\n\t\t\t *************/\r\n\r\n\t\t\tRegEx: {\r\n\t\t\t\tisHex: /^#([A-f\\d]{3}){1,2}$/i,\r\n\t\t\t\t/* Unwrap a property value's surrounding text, e.g. \"rgba(4, 3, 2, 1)\" ==> \"4, 3, 2, 1\" and \"rect(4px 3px 2px 1px)\" ==> \"4px 3px 2px 1px\". */\r\n\t\t\t\tvalueUnwrap: /^[A-z]+\\((.*)\\)$/i,\r\n\t\t\t\twrappedValueAlreadyExtracted: /[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,\r\n\t\t\t\t/* Split a multi-value property into an array of subvalues, e.g. \"rgba(4, 3, 2, 1) 4px 3px 2px 1px\" ==> [ \"rgba(4, 3, 2, 1)\", \"4px\", \"3px\", \"2px\", \"1px\" ]. */\r\n\t\t\t\tvalueSplit: /([A-z]+\\(.+\\))|(([A-z0-9#-.]+?)(?=\\s|$))/ig\r\n\t\t\t},\r\n\t\t\t/************\r\n\t\t\t Lists\r\n\t\t\t ************/\r\n\r\n\t\t\tLists: {\r\n\t\t\t\tcolors: [\"fill\", \"stroke\", \"stopColor\", \"color\", \"backgroundColor\", \"borderColor\", \"borderTopColor\", \"borderRightColor\", \"borderBottomColor\", \"borderLeftColor\", \"outlineColor\"],\r\n\t\t\t\ttransformsBase: [\"translateX\", \"translateY\", \"scale\", \"scaleX\", \"scaleY\", \"skewX\", \"skewY\", \"rotateZ\"],\r\n\t\t\t\ttransforms3D: [\"transformPerspective\", \"translateZ\", \"scaleZ\", \"rotateX\", \"rotateY\"],\r\n\t\t\t\tunits: [\r\n\t\t\t\t\t\"%\", // relative\r\n\t\t\t\t\t\"em\", \"ex\", \"ch\", \"rem\", // font relative\r\n\t\t\t\t\t\"vw\", \"vh\", \"vmin\", \"vmax\", // viewport relative\r\n\t\t\t\t\t\"cm\", \"mm\", \"Q\", \"in\", \"pc\", \"pt\", \"px\", // absolute lengths\r\n\t\t\t\t\t\"deg\", \"grad\", \"rad\", \"turn\", // angles\r\n\t\t\t\t\t\"s\", \"ms\" // time\r\n\t\t\t\t],\r\n\t\t\t\tcolorNames: {\r\n\t\t\t\t\t\"aliceblue\": \"240,248,255\",\r\n\t\t\t\t\t\"antiquewhite\": \"250,235,215\",\r\n\t\t\t\t\t\"aquamarine\": \"127,255,212\",\r\n\t\t\t\t\t\"aqua\": \"0,255,255\",\r\n\t\t\t\t\t\"azure\": \"240,255,255\",\r\n\t\t\t\t\t\"beige\": \"245,245,220\",\r\n\t\t\t\t\t\"bisque\": \"255,228,196\",\r\n\t\t\t\t\t\"black\": \"0,0,0\",\r\n\t\t\t\t\t\"blanchedalmond\": \"255,235,205\",\r\n\t\t\t\t\t\"blueviolet\": \"138,43,226\",\r\n\t\t\t\t\t\"blue\": \"0,0,255\",\r\n\t\t\t\t\t\"brown\": \"165,42,42\",\r\n\t\t\t\t\t\"burlywood\": \"222,184,135\",\r\n\t\t\t\t\t\"cadetblue\": \"95,158,160\",\r\n\t\t\t\t\t\"chartreuse\": \"127,255,0\",\r\n\t\t\t\t\t\"chocolate\": \"210,105,30\",\r\n\t\t\t\t\t\"coral\": \"255,127,80\",\r\n\t\t\t\t\t\"cornflowerblue\": \"100,149,237\",\r\n\t\t\t\t\t\"cornsilk\": \"255,248,220\",\r\n\t\t\t\t\t\"crimson\": \"220,20,60\",\r\n\t\t\t\t\t\"cyan\": \"0,255,255\",\r\n\t\t\t\t\t\"darkblue\": \"0,0,139\",\r\n\t\t\t\t\t\"darkcyan\": \"0,139,139\",\r\n\t\t\t\t\t\"darkgoldenrod\": \"184,134,11\",\r\n\t\t\t\t\t\"darkgray\": \"169,169,169\",\r\n\t\t\t\t\t\"darkgrey\": \"169,169,169\",\r\n\t\t\t\t\t\"darkgreen\": \"0,100,0\",\r\n\t\t\t\t\t\"darkkhaki\": \"189,183,107\",\r\n\t\t\t\t\t\"darkmagenta\": \"139,0,139\",\r\n\t\t\t\t\t\"darkolivegreen\": \"85,107,47\",\r\n\t\t\t\t\t\"darkorange\": \"255,140,0\",\r\n\t\t\t\t\t\"darkorchid\": \"153,50,204\",\r\n\t\t\t\t\t\"darkred\": \"139,0,0\",\r\n\t\t\t\t\t\"darksalmon\": \"233,150,122\",\r\n\t\t\t\t\t\"darkseagreen\": \"143,188,143\",\r\n\t\t\t\t\t\"darkslateblue\": \"72,61,139\",\r\n\t\t\t\t\t\"darkslategray\": \"47,79,79\",\r\n\t\t\t\t\t\"darkturquoise\": \"0,206,209\",\r\n\t\t\t\t\t\"darkviolet\": \"148,0,211\",\r\n\t\t\t\t\t\"deeppink\": \"255,20,147\",\r\n\t\t\t\t\t\"deepskyblue\": \"0,191,255\",\r\n\t\t\t\t\t\"dimgray\": \"105,105,105\",\r\n\t\t\t\t\t\"dimgrey\": \"105,105,105\",\r\n\t\t\t\t\t\"dodgerblue\": \"30,144,255\",\r\n\t\t\t\t\t\"firebrick\": \"178,34,34\",\r\n\t\t\t\t\t\"floralwhite\": \"255,250,240\",\r\n\t\t\t\t\t\"forestgreen\": \"34,139,34\",\r\n\t\t\t\t\t\"fuchsia\": \"255,0,255\",\r\n\t\t\t\t\t\"gainsboro\": \"220,220,220\",\r\n\t\t\t\t\t\"ghostwhite\": \"248,248,255\",\r\n\t\t\t\t\t\"gold\": \"255,215,0\",\r\n\t\t\t\t\t\"goldenrod\": \"218,165,32\",\r\n\t\t\t\t\t\"gray\": \"128,128,128\",\r\n\t\t\t\t\t\"grey\": \"128,128,128\",\r\n\t\t\t\t\t\"greenyellow\": \"173,255,47\",\r\n\t\t\t\t\t\"green\": \"0,128,0\",\r\n\t\t\t\t\t\"honeydew\": \"240,255,240\",\r\n\t\t\t\t\t\"hotpink\": \"255,105,180\",\r\n\t\t\t\t\t\"indianred\": \"205,92,92\",\r\n\t\t\t\t\t\"indigo\": \"75,0,130\",\r\n\t\t\t\t\t\"ivory\": \"255,255,240\",\r\n\t\t\t\t\t\"khaki\": \"240,230,140\",\r\n\t\t\t\t\t\"lavenderblush\": \"255,240,245\",\r\n\t\t\t\t\t\"lavender\": \"230,230,250\",\r\n\t\t\t\t\t\"lawngreen\": \"124,252,0\",\r\n\t\t\t\t\t\"lemonchiffon\": \"255,250,205\",\r\n\t\t\t\t\t\"lightblue\": \"173,216,230\",\r\n\t\t\t\t\t\"lightcoral\": \"240,128,128\",\r\n\t\t\t\t\t\"lightcyan\": \"224,255,255\",\r\n\t\t\t\t\t\"lightgoldenrodyellow\": \"250,250,210\",\r\n\t\t\t\t\t\"lightgray\": \"211,211,211\",\r\n\t\t\t\t\t\"lightgrey\": \"211,211,211\",\r\n\t\t\t\t\t\"lightgreen\": \"144,238,144\",\r\n\t\t\t\t\t\"lightpink\": \"255,182,193\",\r\n\t\t\t\t\t\"lightsalmon\": \"255,160,122\",\r\n\t\t\t\t\t\"lightseagreen\": \"32,178,170\",\r\n\t\t\t\t\t\"lightskyblue\": \"135,206,250\",\r\n\t\t\t\t\t\"lightslategray\": \"119,136,153\",\r\n\t\t\t\t\t\"lightsteelblue\": \"176,196,222\",\r\n\t\t\t\t\t\"lightyellow\": \"255,255,224\",\r\n\t\t\t\t\t\"limegreen\": \"50,205,50\",\r\n\t\t\t\t\t\"lime\": \"0,255,0\",\r\n\t\t\t\t\t\"linen\": \"250,240,230\",\r\n\t\t\t\t\t\"magenta\": \"255,0,255\",\r\n\t\t\t\t\t\"maroon\": \"128,0,0\",\r\n\t\t\t\t\t\"mediumaquamarine\": \"102,205,170\",\r\n\t\t\t\t\t\"mediumblue\": \"0,0,205\",\r\n\t\t\t\t\t\"mediumorchid\": \"186,85,211\",\r\n\t\t\t\t\t\"mediumpurple\": \"147,112,219\",\r\n\t\t\t\t\t\"mediumseagreen\": \"60,179,113\",\r\n\t\t\t\t\t\"mediumslateblue\": \"123,104,238\",\r\n\t\t\t\t\t\"mediumspringgreen\": \"0,250,154\",\r\n\t\t\t\t\t\"mediumturquoise\": \"72,209,204\",\r\n\t\t\t\t\t\"mediumvioletred\": \"199,21,133\",\r\n\t\t\t\t\t\"midnightblue\": \"25,25,112\",\r\n\t\t\t\t\t\"mintcream\": \"245,255,250\",\r\n\t\t\t\t\t\"mistyrose\": \"255,228,225\",\r\n\t\t\t\t\t\"moccasin\": \"255,228,181\",\r\n\t\t\t\t\t\"navajowhite\": \"255,222,173\",\r\n\t\t\t\t\t\"navy\": \"0,0,128\",\r\n\t\t\t\t\t\"oldlace\": \"253,245,230\",\r\n\t\t\t\t\t\"olivedrab\": \"107,142,35\",\r\n\t\t\t\t\t\"olive\": \"128,128,0\",\r\n\t\t\t\t\t\"orangered\": \"255,69,0\",\r\n\t\t\t\t\t\"orange\": \"255,165,0\",\r\n\t\t\t\t\t\"orchid\": \"218,112,214\",\r\n\t\t\t\t\t\"palegoldenrod\": \"238,232,170\",\r\n\t\t\t\t\t\"palegreen\": \"152,251,152\",\r\n\t\t\t\t\t\"paleturquoise\": \"175,238,238\",\r\n\t\t\t\t\t\"palevioletred\": \"219,112,147\",\r\n\t\t\t\t\t\"papayawhip\": \"255,239,213\",\r\n\t\t\t\t\t\"peachpuff\": \"255,218,185\",\r\n\t\t\t\t\t\"peru\": \"205,133,63\",\r\n\t\t\t\t\t\"pink\": \"255,192,203\",\r\n\t\t\t\t\t\"plum\": \"221,160,221\",\r\n\t\t\t\t\t\"powderblue\": \"176,224,230\",\r\n\t\t\t\t\t\"purple\": \"128,0,128\",\r\n\t\t\t\t\t\"red\": \"255,0,0\",\r\n\t\t\t\t\t\"rosybrown\": \"188,143,143\",\r\n\t\t\t\t\t\"royalblue\": \"65,105,225\",\r\n\t\t\t\t\t\"saddlebrown\": \"139,69,19\",\r\n\t\t\t\t\t\"salmon\": \"250,128,114\",\r\n\t\t\t\t\t\"sandybrown\": \"244,164,96\",\r\n\t\t\t\t\t\"seagreen\": \"46,139,87\",\r\n\t\t\t\t\t\"seashell\": \"255,245,238\",\r\n\t\t\t\t\t\"sienna\": \"160,82,45\",\r\n\t\t\t\t\t\"silver\": \"192,192,192\",\r\n\t\t\t\t\t\"skyblue\": \"135,206,235\",\r\n\t\t\t\t\t\"slateblue\": \"106,90,205\",\r\n\t\t\t\t\t\"slategray\": \"112,128,144\",\r\n\t\t\t\t\t\"snow\": \"255,250,250\",\r\n\t\t\t\t\t\"springgreen\": \"0,255,127\",\r\n\t\t\t\t\t\"steelblue\": \"70,130,180\",\r\n\t\t\t\t\t\"tan\": \"210,180,140\",\r\n\t\t\t\t\t\"teal\": \"0,128,128\",\r\n\t\t\t\t\t\"thistle\": \"216,191,216\",\r\n\t\t\t\t\t\"tomato\": \"255,99,71\",\r\n\t\t\t\t\t\"turquoise\": \"64,224,208\",\r\n\t\t\t\t\t\"violet\": \"238,130,238\",\r\n\t\t\t\t\t\"wheat\": \"245,222,179\",\r\n\t\t\t\t\t\"whitesmoke\": \"245,245,245\",\r\n\t\t\t\t\t\"white\": \"255,255,255\",\r\n\t\t\t\t\t\"yellowgreen\": \"154,205,50\",\r\n\t\t\t\t\t\"yellow\": \"255,255,0\"\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/************\r\n\t\t\t Hooks\r\n\t\t\t ************/\r\n\r\n\t\t\t/* Hooks allow a subproperty (e.g. \"boxShadowBlur\") of a compound-value CSS property\r\n\t\t\t (e.g. \"boxShadow: X Y Blur Spread Color\") to be animated as if it were a discrete property. */\r\n\t\t\t/* Note: Beyond enabling fine-grained property animation, hooking is necessary since Velocity only\r\n\t\t\t tweens properties with single numeric values; unlike CSS transitions, Velocity does not interpolate compound-values. */\r\n\t\t\tHooks: {\r\n\t\t\t\t/********************\r\n\t\t\t\t Registration\r\n\t\t\t\t ********************/\r\n\r\n\t\t\t\t/* Templates are a concise way of indicating which subproperties must be individually registered for each compound-value CSS property. */\r\n\t\t\t\t/* Each template consists of the compound-value's base name, its constituent subproperty names, and those subproperties' default values. */\r\n\t\t\t\ttemplates: {\r\n\t\t\t\t\t\"textShadow\": [\"Color X Y Blur\", \"black 0px 0px 0px\"],\r\n\t\t\t\t\t\"boxShadow\": [\"Color X Y Blur Spread\", \"black 0px 0px 0px 0px\"],\r\n\t\t\t\t\t\"clip\": [\"Top Right Bottom Left\", \"0px 0px 0px 0px\"],\r\n\t\t\t\t\t\"backgroundPosition\": [\"X Y\", \"0% 0%\"],\r\n\t\t\t\t\t\"transformOrigin\": [\"X Y Z\", \"50% 50% 0px\"],\r\n\t\t\t\t\t\"perspectiveOrigin\": [\"X Y\", \"50% 50%\"]\r\n\t\t\t\t},\r\n\t\t\t\t/* A \"registered\" hook is one that has been converted from its template form into a live,\r\n\t\t\t\t tweenable property. It contains data to associate it with its root property. */\r\n\t\t\t\tregistered: {\r\n\t\t\t\t\t/* Note: A registered hook looks like this ==> textShadowBlur: [ \"textShadow\", 3 ],\r\n\t\t\t\t\t which consists of the subproperty's name, the associated root property's name,\r\n\t\t\t\t\t and the subproperty's position in the root's value. */\r\n\t\t\t\t},\r\n\t\t\t\t/* Convert the templates into individual hooks then append them to the registered object above. */\r\n\t\t\t\tregister: function() {\r\n\t\t\t\t\t/* Color hooks registration: Colors are defaulted to white -- as opposed to black -- since colors that are\r\n\t\t\t\t\t currently set to \"transparent\" default to their respective template below when color-animated,\r\n\t\t\t\t\t and white is typically a closer match to transparent than black is. An exception is made for text (\"color\"),\r\n\t\t\t\t\t which is almost always set closer to black than white. */\r\n\t\t\t\t\tfor (var i = 0; i < CSS.Lists.colors.length; i++) {\r\n\t\t\t\t\t\tvar rgbComponents = (CSS.Lists.colors[i] === \"color\") ? \"0 0 0 1\" : \"255 255 255 1\";\r\n\t\t\t\t\t\tCSS.Hooks.templates[CSS.Lists.colors[i]] = [\"Red Green Blue Alpha\", rgbComponents];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar rootProperty,\r\n\t\t\t\t\t\t\thookTemplate,\r\n\t\t\t\t\t\t\thookNames;\r\n\r\n\t\t\t\t\t/* In IE, color values inside compound-value properties are positioned at the end the value instead of at the beginning.\r\n\t\t\t\t\t Thus, we re-arrange the templates accordingly. */\r\n\t\t\t\t\tif (IE) {\r\n\t\t\t\t\t\tfor (rootProperty in CSS.Hooks.templates) {\r\n\t\t\t\t\t\t\tif (!CSS.Hooks.templates.hasOwnProperty(rootProperty)) {\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\thookTemplate = CSS.Hooks.templates[rootProperty];\r\n\t\t\t\t\t\t\thookNames = hookTemplate[0].split(\" \");\r\n\r\n\t\t\t\t\t\t\tvar defaultValues = hookTemplate[1].match(CSS.RegEx.valueSplit);\r\n\r\n\t\t\t\t\t\t\tif (hookNames[0] === \"Color\") {\r\n\t\t\t\t\t\t\t\t/* Reposition both the hook's name and its default value to the end of their respective strings. */\r\n\t\t\t\t\t\t\t\thookNames.push(hookNames.shift());\r\n\t\t\t\t\t\t\t\tdefaultValues.push(defaultValues.shift());\r\n\r\n\t\t\t\t\t\t\t\t/* Replace the existing template for the hook's root property. */\r\n\t\t\t\t\t\t\t\tCSS.Hooks.templates[rootProperty] = [hookNames.join(\" \"), defaultValues.join(\" \")];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Hook registration. */\r\n\t\t\t\t\tfor (rootProperty in CSS.Hooks.templates) {\r\n\t\t\t\t\t\tif (!CSS.Hooks.templates.hasOwnProperty(rootProperty)) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\thookTemplate = CSS.Hooks.templates[rootProperty];\r\n\t\t\t\t\t\thookNames = hookTemplate[0].split(\" \");\r\n\r\n\t\t\t\t\t\tfor (var j in hookNames) {\r\n\t\t\t\t\t\t\tif (!hookNames.hasOwnProperty(j)) {\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tvar fullHookName = rootProperty + hookNames[j],\r\n\t\t\t\t\t\t\t\t\thookPosition = j;\r\n\r\n\t\t\t\t\t\t\t/* For each hook, register its full name (e.g. textShadowBlur) with its root property (e.g. textShadow)\r\n\t\t\t\t\t\t\t and the hook's position in its template's default value string. */\r\n\t\t\t\t\t\t\tCSS.Hooks.registered[fullHookName] = [rootProperty, hookPosition];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/*****************************\r\n\t\t\t\t Injection and Extraction\r\n\t\t\t\t *****************************/\r\n\r\n\t\t\t\t/* Look up the root property associated with the hook (e.g. return \"textShadow\" for \"textShadowBlur\"). */\r\n\t\t\t\t/* Since a hook cannot be set directly (the browser won't recognize it), style updating for hooks is routed through the hook's root property. */\r\n\t\t\t\tgetRoot: function(property) {\r\n\t\t\t\t\tvar hookData = CSS.Hooks.registered[property];\r\n\r\n\t\t\t\t\tif (hookData) {\r\n\t\t\t\t\t\treturn hookData[0];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* If there was no hook match, return the property name untouched. */\r\n\t\t\t\t\t\treturn property;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tgetUnit: function(str, start) {\r\n\t\t\t\t\tvar unit = (str.substr(start || 0, 5).match(/^[a-z%]+/) || [])[0] || \"\";\r\n\r\n\t\t\t\t\tif (unit && _inArray(CSS.Lists.units, unit)) {\r\n\t\t\t\t\t\treturn unit;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn \"\";\r\n\t\t\t\t},\r\n\t\t\t\tfixColors: function(str) {\r\n\t\t\t\t\treturn str.replace(/(rgba?\\(\\s*)?(\\b[a-z]+\\b)/g, function($0, $1, $2) {\r\n\t\t\t\t\t\tif (CSS.Lists.colorNames.hasOwnProperty($2)) {\r\n\t\t\t\t\t\t\treturn ($1 ? $1 : \"rgba(\") + CSS.Lists.colorNames[$2] + ($1 ? \"\" : \",1)\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn $1 + $2;\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t/* Convert any rootPropertyValue, null or otherwise, into a space-delimited list of hook values so that\r\n\t\t\t\t the targeted hook can be injected or extracted at its standard position. */\r\n\t\t\t\tcleanRootPropertyValue: function(rootProperty, rootPropertyValue) {\r\n\t\t\t\t\t/* If the rootPropertyValue is wrapped with \"rgb()\", \"clip()\", etc., remove the wrapping to normalize the value before manipulation. */\r\n\t\t\t\t\tif (CSS.RegEx.valueUnwrap.test(rootPropertyValue)) {\r\n\t\t\t\t\t\trootPropertyValue = rootPropertyValue.match(CSS.RegEx.valueUnwrap)[1];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If rootPropertyValue is a CSS null-value (from which there's inherently no hook value to extract),\r\n\t\t\t\t\t default to the root's default value as defined in CSS.Hooks.templates. */\r\n\t\t\t\t\t/* Note: CSS null-values include \"none\", \"auto\", and \"transparent\". They must be converted into their\r\n\t\t\t\t\t zero-values (e.g. textShadow: \"none\" ==> textShadow: \"0px 0px 0px black\") for hook manipulation to proceed. */\r\n\t\t\t\t\tif (CSS.Values.isCSSNullValue(rootPropertyValue)) {\r\n\t\t\t\t\t\trootPropertyValue = CSS.Hooks.templates[rootProperty][1];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn rootPropertyValue;\r\n\t\t\t\t},\r\n\t\t\t\t/* Extracted the hook's value from its root property's value. This is used to get the starting value of an animating hook. */\r\n\t\t\t\textractValue: function(fullHookName, rootPropertyValue) {\r\n\t\t\t\t\tvar hookData = CSS.Hooks.registered[fullHookName];\r\n\r\n\t\t\t\t\tif (hookData) {\r\n\t\t\t\t\t\tvar hookRoot = hookData[0],\r\n\t\t\t\t\t\t\t\thookPosition = hookData[1];\r\n\r\n\t\t\t\t\t\trootPropertyValue = CSS.Hooks.cleanRootPropertyValue(hookRoot, rootPropertyValue);\r\n\r\n\t\t\t\t\t\t/* Split rootPropertyValue into its constituent hook values then grab the desired hook at its standard position. */\r\n\t\t\t\t\t\treturn rootPropertyValue.toString().match(CSS.RegEx.valueSplit)[hookPosition];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* If the provided fullHookName isn't a registered hook, return the rootPropertyValue that was passed in. */\r\n\t\t\t\t\t\treturn rootPropertyValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/* Inject the hook's value into its root property's value. This is used to piece back together the root property\r\n\t\t\t\t once Velocity has updated one of its individually hooked values through tweening. */\r\n\t\t\t\tinjectValue: function(fullHookName, hookValue, rootPropertyValue) {\r\n\t\t\t\t\tvar hookData = CSS.Hooks.registered[fullHookName];\r\n\r\n\t\t\t\t\tif (hookData) {\r\n\t\t\t\t\t\tvar hookRoot = hookData[0],\r\n\t\t\t\t\t\t\t\thookPosition = hookData[1],\r\n\t\t\t\t\t\t\t\trootPropertyValueParts,\r\n\t\t\t\t\t\t\t\trootPropertyValueUpdated;\r\n\r\n\t\t\t\t\t\trootPropertyValue = CSS.Hooks.cleanRootPropertyValue(hookRoot, rootPropertyValue);\r\n\r\n\t\t\t\t\t\t/* Split rootPropertyValue into its individual hook values, replace the targeted value with hookValue,\r\n\t\t\t\t\t\t then reconstruct the rootPropertyValue string. */\r\n\t\t\t\t\t\trootPropertyValueParts = rootPropertyValue.toString().match(CSS.RegEx.valueSplit);\r\n\t\t\t\t\t\trootPropertyValueParts[hookPosition] = hookValue;\r\n\t\t\t\t\t\trootPropertyValueUpdated = rootPropertyValueParts.join(\" \");\r\n\r\n\t\t\t\t\t\treturn rootPropertyValueUpdated;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* If the provided fullHookName isn't a registered hook, return the rootPropertyValue that was passed in. */\r\n\t\t\t\t\t\treturn rootPropertyValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/*******************\r\n\t\t\t Normalizations\r\n\t\t\t *******************/\r\n\r\n\t\t\t/* Normalizations standardize CSS property manipulation by pollyfilling browser-specific implementations (e.g. opacity)\r\n\t\t\t and reformatting special properties (e.g. clip, rgba) to look like standard ones. */\r\n\t\t\tNormalizations: {\r\n\t\t\t\t/* Normalizations are passed a normalization target (either the property's name, its extracted value, or its injected value),\r\n\t\t\t\t the targeted element (which may need to be queried), and the targeted property value. */\r\n\t\t\t\tregistered: {\r\n\t\t\t\t\tclip: function(type, element, propertyValue) {\r\n\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\treturn \"clip\";\r\n\t\t\t\t\t\t\t\t/* Clip needs to be unwrapped and stripped of its commas during extraction. */\r\n\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\tvar extracted;\r\n\r\n\t\t\t\t\t\t\t\t/* If Velocity also extracted this value, skip extraction. */\r\n\t\t\t\t\t\t\t\tif (CSS.RegEx.wrappedValueAlreadyExtracted.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\textracted = propertyValue;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t/* Remove the \"rect()\" wrapper. */\r\n\t\t\t\t\t\t\t\t\textracted = propertyValue.toString().match(CSS.RegEx.valueUnwrap);\r\n\r\n\t\t\t\t\t\t\t\t\t/* Strip off commas. */\r\n\t\t\t\t\t\t\t\t\textracted = extracted ? extracted[1].replace(/,(\\s+)?/g, \" \") : propertyValue;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn extracted;\r\n\t\t\t\t\t\t\t\t/* Clip needs to be re-wrapped during injection. */\r\n\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\treturn \"rect(\" + propertyValue + \")\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tblur: function(type, element, propertyValue) {\r\n\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\treturn Velocity.State.isFirefox ? \"filter\" : \"-webkit-filter\";\r\n\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\tvar extracted = parseFloat(propertyValue);\r\n\r\n\t\t\t\t\t\t\t\t/* If extracted is NaN, meaning the value isn't already extracted. */\r\n\t\t\t\t\t\t\t\tif (!(extracted || extracted === 0)) {\r\n\t\t\t\t\t\t\t\t\tvar blurComponent = propertyValue.toString().match(/blur\\(([0-9]+[A-z]+)\\)/i);\r\n\r\n\t\t\t\t\t\t\t\t\t/* If the filter string had a blur component, return just the blur value and unit type. */\r\n\t\t\t\t\t\t\t\t\tif (blurComponent) {\r\n\t\t\t\t\t\t\t\t\t\textracted = blurComponent[1];\r\n\t\t\t\t\t\t\t\t\t\t/* If the component doesn't exist, default blur to 0. */\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\textracted = 0;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn extracted;\r\n\t\t\t\t\t\t\t\t/* Blur needs to be re-wrapped during injection. */\r\n\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t/* For the blur effect to be fully de-applied, it needs to be set to \"none\" instead of 0. */\r\n\t\t\t\t\t\t\t\tif (!parseFloat(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\treturn \"none\";\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\treturn \"blur(\" + propertyValue + \")\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\t/* <=IE8 do not support the standard opacity property. They use filter:alpha(opacity=INT) instead. */\r\n\t\t\t\t\topacity: function(type, element, propertyValue) {\r\n\t\t\t\t\t\tif (IE <= 8) {\r\n\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\treturn \"filter\";\r\n\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\t/* <=IE8 return a \"filter\" value of \"alpha(opacity=\\d{1,3})\".\r\n\t\t\t\t\t\t\t\t\t Extract the value and convert it to a decimal value to match the standard CSS opacity property's formatting. */\r\n\t\t\t\t\t\t\t\t\tvar extracted = propertyValue.toString().match(/alpha\\(opacity=(.*)\\)/i);\r\n\r\n\t\t\t\t\t\t\t\t\tif (extracted) {\r\n\t\t\t\t\t\t\t\t\t\t/* Convert to decimal value. */\r\n\t\t\t\t\t\t\t\t\t\tpropertyValue = extracted[1] / 100;\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t/* When extracting opacity, default to 1 since a null value means opacity hasn't been set. */\r\n\t\t\t\t\t\t\t\t\t\tpropertyValue = 1;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\treturn propertyValue;\r\n\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\t/* Opacified elements are required to have their zoom property set to a non-zero value. */\r\n\t\t\t\t\t\t\t\t\telement.style.zoom = 1;\r\n\r\n\t\t\t\t\t\t\t\t\t/* Setting the filter property on elements with certain font property combinations can result in a\r\n\t\t\t\t\t\t\t\t\t highly unappealing ultra-bolding effect. There's no way to remedy this throughout a tween, but dropping the\r\n\t\t\t\t\t\t\t\t\t value altogether (when opacity hits 1) at leasts ensures that the glitch is gone post-tweening. */\r\n\t\t\t\t\t\t\t\t\tif (parseFloat(propertyValue) >= 1) {\r\n\t\t\t\t\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t/* As per the filter property's spec, convert the decimal value to a whole number and wrap the value. */\r\n\t\t\t\t\t\t\t\t\t\treturn \"alpha(opacity=\" + parseInt(parseFloat(propertyValue) * 100, 10) + \")\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/* With all other browsers, normalization is not required; return the same values that were passed in. */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\treturn \"opacity\";\r\n\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\treturn propertyValue;\r\n\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\treturn propertyValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/*****************************\r\n\t\t\t\t Batched Registrations\r\n\t\t\t\t *****************************/\r\n\r\n\t\t\t\t/* Note: Batched normalizations extend the CSS.Normalizations.registered object. */\r\n\t\t\t\tregister: function() {\r\n\r\n\t\t\t\t\t/*****************\r\n\t\t\t\t\t Transforms\r\n\t\t\t\t\t *****************/\r\n\r\n\t\t\t\t\t/* Transforms are the subproperties contained by the CSS \"transform\" property. Transforms must undergo normalization\r\n\t\t\t\t\t so that they can be referenced in a properties map by their individual names. */\r\n\t\t\t\t\t/* Note: When transforms are \"set\", they are actually assigned to a per-element transformCache. When all transform\r\n\t\t\t\t\t setting is complete complete, CSS.flushTransformCache() must be manually called to flush the values to the DOM.\r\n\t\t\t\t\t Transform setting is batched in this way to improve performance: the transform style only needs to be updated\r\n\t\t\t\t\t once when multiple transform subproperties are being animated simultaneously. */\r\n\t\t\t\t\t/* Note: IE9 and Android Gingerbread have support for 2D -- but not 3D -- transforms. Since animating unsupported\r\n\t\t\t\t\t transform properties results in the browser ignoring the *entire* transform string, we prevent these 3D values\r\n\t\t\t\t\t from being normalized for these browsers so that tweening skips these properties altogether\r\n\t\t\t\t\t (since it will ignore them as being unsupported by the browser.) */\r\n\t\t\t\t\tif ((!IE || IE > 9) && !Velocity.State.isGingerbread) {\r\n\t\t\t\t\t\t/* Note: Since the standalone CSS \"perspective\" property and the CSS transform \"perspective\" subproperty\r\n\t\t\t\t\t\t share the same name, the latter is given a unique token within Velocity: \"transformPerspective\". */\r\n\t\t\t\t\t\tCSS.Lists.transformsBase = CSS.Lists.transformsBase.concat(CSS.Lists.transforms3D);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tfor (var i = 0; i < CSS.Lists.transformsBase.length; i++) {\r\n\t\t\t\t\t\t/* Wrap the dynamically generated normalization function in a new scope so that transformName's value is\r\n\t\t\t\t\t\t paired with its respective function. (Otherwise, all functions would take the final for loop's transformName.) */\r\n\t\t\t\t\t\t(function() {\r\n\t\t\t\t\t\t\tvar transformName = CSS.Lists.transformsBase[i];\r\n\r\n\t\t\t\t\t\t\tCSS.Normalizations.registered[transformName] = function(type, element, propertyValue) {\r\n\t\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\t\t/* The normalized property name is the parent \"transform\" property -- the property that is actually set in CSS. */\r\n\t\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\t\treturn \"transform\";\r\n\t\t\t\t\t\t\t\t\t\t/* Transform values are cached onto a per-element transformCache object. */\r\n\t\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\t\t/* If this transform has yet to be assigned a value, return its null value. */\r\n\t\t\t\t\t\t\t\t\t\tif (Data(element) === undefined || Data(element).transformCache[transformName] === undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Scale CSS.Lists.transformsBase default to 1 whereas all other transform properties default to 0. */\r\n\t\t\t\t\t\t\t\t\t\t\treturn /^scale/i.test(transformName) ? 1 : 0;\r\n\t\t\t\t\t\t\t\t\t\t\t/* When transform values are set, they are wrapped in parentheses as per the CSS spec.\r\n\t\t\t\t\t\t\t\t\t\t\t Thus, when extracting their values (for tween calculations), we strip off the parentheses. */\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\treturn Data(element).transformCache[transformName].replace(/[()]/g, \"\");\r\n\t\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\t\tvar invalid = false;\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* If an individual transform property contains an unsupported unit type, the browser ignores the *entire* transform property.\r\n\t\t\t\t\t\t\t\t\t\t Thus, protect users from themselves by skipping setting for transform values supplied with invalid unit types. */\r\n\t\t\t\t\t\t\t\t\t\t/* Switch on the base transform type; ignore the axis by removing the last letter from the transform's name. */\r\n\t\t\t\t\t\t\t\t\t\tswitch (transformName.substr(0, transformName.length - 1)) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Whitelist unit types for each transform. */\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"translate\":\r\n\t\t\t\t\t\t\t\t\t\t\t\tinvalid = !/(%|px|em|rem|vw|vh|\\d)$/i.test(propertyValue);\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* Since an axis-free \"scale\" property is supported as well, a little hack is used here to detect it by chopping off its last letter. */\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"scal\":\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"scale\":\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* Chrome on Android has a bug in which scaled elements blur if their initial scale\r\n\t\t\t\t\t\t\t\t\t\t\t\t value is below 1 (which can happen with forcefeeding). Thus, we detect a yet-unset scale property\r\n\t\t\t\t\t\t\t\t\t\t\t\t and ensure that its first value is always 1. More info: http://stackoverflow.com/questions/10417890/css3-animations-with-transform-causes-blurred-elements-on-webkit/10417962#10417962 */\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (Velocity.State.isAndroid && Data(element).transformCache[transformName] === undefined && propertyValue < 1) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tpropertyValue = 1;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tinvalid = !/(\\d)$/i.test(propertyValue);\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"skew\":\r\n\t\t\t\t\t\t\t\t\t\t\t\tinvalid = !/(deg|\\d)$/i.test(propertyValue);\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\tcase \"rotate\":\r\n\t\t\t\t\t\t\t\t\t\t\t\tinvalid = !/(deg|\\d)$/i.test(propertyValue);\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (!invalid) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* As per the CSS spec, wrap the value in parentheses. */\r\n\t\t\t\t\t\t\t\t\t\t\tData(element).transformCache[transformName] = \"(\" + propertyValue + \")\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Although the value is set on the transformCache object, return the newly-updated value for the calling code to process as normal. */\r\n\t\t\t\t\t\t\t\t\t\treturn Data(element).transformCache[transformName];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t})();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*************\r\n\t\t\t\t\t Colors\r\n\t\t\t\t\t *************/\r\n\r\n\t\t\t\t\t/* Since Velocity only animates a single numeric value per property, color animation is achieved by hooking the individual RGBA components of CSS color properties.\r\n\t\t\t\t\t Accordingly, color values must be normalized (e.g. \"#ff0000\", \"red\", and \"rgb(255, 0, 0)\" ==> \"255 0 0 1\") so that their components can be injected/extracted by CSS.Hooks logic. */\r\n\t\t\t\t\tfor (var j = 0; j < CSS.Lists.colors.length; j++) {\r\n\t\t\t\t\t\t/* Wrap the dynamically generated normalization function in a new scope so that colorName's value is paired with its respective function.\r\n\t\t\t\t\t\t (Otherwise, all functions would take the final for loop's colorName.) */\r\n\t\t\t\t\t\t(function() {\r\n\t\t\t\t\t\t\tvar colorName = CSS.Lists.colors[j];\r\n\r\n\t\t\t\t\t\t\t/* Note: In IE<=8, which support rgb but not rgba, color properties are reverted to rgb by stripping off the alpha component. */\r\n\t\t\t\t\t\t\tCSS.Normalizations.registered[colorName] = function(type, element, propertyValue) {\r\n\t\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\t\treturn colorName;\r\n\t\t\t\t\t\t\t\t\t\t/* Convert all color values into the rgb format. (Old IE can return hex values and color names instead of rgb/rgba.) */\r\n\t\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\t\tvar extracted;\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* If the color is already in its hookable form (e.g. \"255 255 255 1\") due to having been previously extracted, skip extraction. */\r\n\t\t\t\t\t\t\t\t\t\tif (CSS.RegEx.wrappedValueAlreadyExtracted.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\textracted = propertyValue;\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tvar converted,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcolorNames = {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tblack: \"rgb(0, 0, 0)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tblue: \"rgb(0, 0, 255)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgray: \"rgb(128, 128, 128)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tgreen: \"rgb(0, 128, 0)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tred: \"rgb(255, 0, 0)\",\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twhite: \"rgb(255, 255, 255)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t/* Convert color names to rgb. */\r\n\t\t\t\t\t\t\t\t\t\t\tif (/^[A-z]+$/i.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (colorNames[propertyValue] !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconverted = colorNames[propertyValue];\r\n\t\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* If an unmatched color name is provided, default to black. */\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tconverted = colorNames.black;\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* Convert hex values to rgb. */\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (CSS.RegEx.isHex.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tconverted = \"rgb(\" + CSS.Values.hexToRgb(propertyValue).join(\" \") + \")\";\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* If the provided color doesn't match any of the accepted color formats, default to black. */\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (!(/^rgba?\\(/i.test(propertyValue))) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tconverted = colorNames.black;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t/* Remove the surrounding \"rgb/rgba()\" string then replace commas with spaces and strip\r\n\t\t\t\t\t\t\t\t\t\t\t repeated spaces (in case the value included spaces to begin with). */\r\n\t\t\t\t\t\t\t\t\t\t\textracted = (converted || propertyValue).toString().match(CSS.RegEx.valueUnwrap)[1].replace(/,(\\s+)?/g, \" \");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* So long as this isn't <=IE8, add a fourth (alpha) component if it's missing and default it to 1 (visible). */\r\n\t\t\t\t\t\t\t\t\t\tif ((!IE || IE > 8) && extracted.split(\" \").length === 3) {\r\n\t\t\t\t\t\t\t\t\t\t\textracted += \" 1\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn extracted;\r\n\t\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\t\t/* If we have a pattern then it might already have the right values */\r\n\t\t\t\t\t\t\t\t\t\tif (/^rgb/.test(propertyValue)) {\r\n\t\t\t\t\t\t\t\t\t\t\treturn propertyValue;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* If this is IE<=8 and an alpha component exists, strip it off. */\r\n\t\t\t\t\t\t\t\t\t\tif (IE <= 8) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (propertyValue.split(\" \").length === 4) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tpropertyValue = propertyValue.split(/\\s+/).slice(0, 3).join(\" \");\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t/* Otherwise, add a fourth (alpha) component if it's missing and default it to 1 (visible). */\r\n\t\t\t\t\t\t\t\t\t\t} else if (propertyValue.split(\" \").length === 3) {\r\n\t\t\t\t\t\t\t\t\t\t\tpropertyValue += \" 1\";\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Re-insert the browser-appropriate wrapper(\"rgb/rgba()\"), insert commas, and strip off decimal units\r\n\t\t\t\t\t\t\t\t\t\t on all values but the fourth (R, G, and B only accept whole numbers). */\r\n\t\t\t\t\t\t\t\t\t\treturn (IE <= 8 ? \"rgb\" : \"rgba\") + \"(\" + propertyValue.replace(/\\s+/g, \",\").replace(/\\.(\\d)+(?=,)/g, \"\") + \")\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t})();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/**************\r\n\t\t\t\t\t Dimensions\r\n\t\t\t\t\t **************/\r\n\t\t\t\t\tfunction augmentDimension(name, element, wantInner) {\r\n\t\t\t\t\t\tvar isBorderBox = CSS.getPropertyValue(element, \"boxSizing\").toString().toLowerCase() === \"border-box\";\r\n\r\n\t\t\t\t\t\tif (isBorderBox === (wantInner || false)) {\r\n\t\t\t\t\t\t\t/* in box-sizing mode, the CSS width / height accessors already give the outerWidth / outerHeight. */\r\n\t\t\t\t\t\t\tvar i,\r\n\t\t\t\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\t\t\t\taugment = 0,\r\n\t\t\t\t\t\t\t\t\tsides = name === \"width\" ? [\"Left\", \"Right\"] : [\"Top\", \"Bottom\"],\r\n\t\t\t\t\t\t\t\t\tfields = [\"padding\" + sides[0], \"padding\" + sides[1], \"border\" + sides[0] + \"Width\", \"border\" + sides[1] + \"Width\"];\r\n\r\n\t\t\t\t\t\t\tfor (i = 0; i < fields.length; i++) {\r\n\t\t\t\t\t\t\t\tvalue = parseFloat(CSS.getPropertyValue(element, fields[i]));\r\n\t\t\t\t\t\t\t\tif (!isNaN(value)) {\r\n\t\t\t\t\t\t\t\t\taugment += value;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn wantInner ? -augment : augment;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfunction getDimension(name, wantInner) {\r\n\t\t\t\t\t\treturn function(type, element, propertyValue) {\r\n\t\t\t\t\t\t\tswitch (type) {\r\n\t\t\t\t\t\t\t\tcase \"name\":\r\n\t\t\t\t\t\t\t\t\treturn name;\r\n\t\t\t\t\t\t\t\tcase \"extract\":\r\n\t\t\t\t\t\t\t\t\treturn parseFloat(propertyValue) + augmentDimension(name, element, wantInner);\r\n\t\t\t\t\t\t\t\tcase \"inject\":\r\n\t\t\t\t\t\t\t\t\treturn (parseFloat(propertyValue) - augmentDimension(name, element, wantInner)) + \"px\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tCSS.Normalizations.registered.innerWidth = getDimension(\"width\", true);\r\n\t\t\t\t\tCSS.Normalizations.registered.innerHeight = getDimension(\"height\", true);\r\n\t\t\t\t\tCSS.Normalizations.registered.outerWidth = getDimension(\"width\");\r\n\t\t\t\t\tCSS.Normalizations.registered.outerHeight = getDimension(\"height\");\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/************************\r\n\t\t\t CSS Property Names\r\n\t\t\t ************************/\r\n\r\n\t\t\tNames: {\r\n\t\t\t\t/* Camelcase a property name into its JavaScript notation (e.g. \"background-color\" ==> \"backgroundColor\").\r\n\t\t\t\t Camelcasing is used to normalize property names between and across calls. */\r\n\t\t\t\tcamelCase: function(property) {\r\n\t\t\t\t\treturn property.replace(/-(\\w)/g, function(match, subMatch) {\r\n\t\t\t\t\t\treturn subMatch.toUpperCase();\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t/* For SVG elements, some properties (namely, dimensional ones) are GET/SET via the element's HTML attributes (instead of via CSS styles). */\r\n\t\t\t\tSVGAttribute: function(property) {\r\n\t\t\t\t\tvar SVGAttributes = \"width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2\";\r\n\r\n\t\t\t\t\t/* Certain browsers require an SVG transform to be applied as an attribute. (Otherwise, application via CSS is preferable due to 3D support.) */\r\n\t\t\t\t\tif (IE || (Velocity.State.isAndroid && !Velocity.State.isChrome)) {\r\n\t\t\t\t\t\tSVGAttributes += \"|transform\";\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn new RegExp(\"^(\" + SVGAttributes + \")$\", \"i\").test(property);\r\n\t\t\t\t},\r\n\t\t\t\t/* Determine whether a property should be set with a vendor prefix. */\r\n\t\t\t\t/* If a prefixed version of the property exists, return it. Otherwise, return the original property name.\r\n\t\t\t\t If the property is not at all supported by the browser, return a false flag. */\r\n\t\t\t\tprefixCheck: function(property) {\r\n\t\t\t\t\t/* If this property has already been checked, return the cached value. */\r\n\t\t\t\t\tif (Velocity.State.prefixMatches[property]) {\r\n\t\t\t\t\t\treturn [Velocity.State.prefixMatches[property], true];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar vendors = [\"\", \"Webkit\", \"Moz\", \"ms\", \"O\"];\r\n\r\n\t\t\t\t\t\tfor (var i = 0, vendorsLength = vendors.length; i < vendorsLength; i++) {\r\n\t\t\t\t\t\t\tvar propertyPrefixed;\r\n\r\n\t\t\t\t\t\t\tif (i === 0) {\r\n\t\t\t\t\t\t\t\tpropertyPrefixed = property;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t/* Capitalize the first letter of the property to conform to JavaScript vendor prefix notation (e.g. webkitFilter). */\r\n\t\t\t\t\t\t\t\tpropertyPrefixed = vendors[i] + property.replace(/^\\w/, function(match) {\r\n\t\t\t\t\t\t\t\t\treturn match.toUpperCase();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Check if the browser supports this property as prefixed. */\r\n\t\t\t\t\t\t\tif (Type.isString(Velocity.State.prefixElement.style[propertyPrefixed])) {\r\n\t\t\t\t\t\t\t\t/* Cache the match. */\r\n\t\t\t\t\t\t\t\tVelocity.State.prefixMatches[property] = propertyPrefixed;\r\n\r\n\t\t\t\t\t\t\t\treturn [propertyPrefixed, true];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* If the browser doesn't support this property in any form, include a false flag so that the caller can decide how to proceed. */\r\n\t\t\t\t\t\treturn [property, false];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/************************\r\n\t\t\t CSS Property Values\r\n\t\t\t ************************/\r\n\r\n\t\t\tValues: {\r\n\t\t\t\t/* Hex to RGB conversion. Copyright Tim Down: http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb */\r\n\t\t\t\thexToRgb: function(hex) {\r\n\t\t\t\t\tvar shortformRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i,\r\n\t\t\t\t\t\t\tlongformRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,\r\n\t\t\t\t\t\t\trgbParts;\r\n\r\n\t\t\t\t\thex = hex.replace(shortformRegex, function(m, r, g, b) {\r\n\t\t\t\t\t\treturn r + r + g + g + b + b;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\trgbParts = longformRegex.exec(hex);\r\n\r\n\t\t\t\t\treturn rgbParts ? [parseInt(rgbParts[1], 16), parseInt(rgbParts[2], 16), parseInt(rgbParts[3], 16)] : [0, 0, 0];\r\n\t\t\t\t},\r\n\t\t\t\tisCSSNullValue: function(value) {\r\n\t\t\t\t\t/* The browser defaults CSS values that have not been set to either 0 or one of several possible null-value strings.\r\n\t\t\t\t\t Thus, we check for both falsiness and these special strings. */\r\n\t\t\t\t\t/* Null-value checking is performed to default the special strings to 0 (for the sake of tweening) or their hook\r\n\t\t\t\t\t templates as defined as CSS.Hooks (for the sake of hook injection/extraction). */\r\n\t\t\t\t\t/* Note: Chrome returns \"rgba(0, 0, 0, 0)\" for an undefined color whereas IE returns \"transparent\". */\r\n\t\t\t\t\treturn (!value || /^(none|auto|transparent|(rgba\\(0, ?0, ?0, ?0\\)))$/i.test(value));\r\n\t\t\t\t},\r\n\t\t\t\t/* Retrieve a property's default unit type. Used for assigning a unit type when one is not supplied by the user. */\r\n\t\t\t\tgetUnitType: function(property) {\r\n\t\t\t\t\tif (/^(rotate|skew)/i.test(property)) {\r\n\t\t\t\t\t\treturn \"deg\";\r\n\t\t\t\t\t} else if (/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(property)) {\r\n\t\t\t\t\t\t/* The above properties are unitless. */\r\n\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* Default to px for all other properties. */\r\n\t\t\t\t\t\treturn \"px\";\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/* HTML elements default to an associated display type when they're not set to display:none. */\r\n\t\t\t\t/* Note: This function is used for correctly setting the non-\"none\" display value in certain Velocity redirects, such as fadeIn/Out. */\r\n\t\t\t\tgetDisplayType: function(element) {\r\n\t\t\t\t\tvar tagName = element && element.tagName.toString().toLowerCase();\r\n\r\n\t\t\t\t\tif (/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"inline\";\r\n\t\t\t\t\t} else if (/^(li)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"list-item\";\r\n\t\t\t\t\t} else if (/^(tr)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"table-row\";\r\n\t\t\t\t\t} else if (/^(table)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"table\";\r\n\t\t\t\t\t} else if (/^(tbody)$/i.test(tagName)) {\r\n\t\t\t\t\t\treturn \"table-row-group\";\r\n\t\t\t\t\t\t/* Default to \"block\" when no match is found. */\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn \"block\";\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\t/* The class add/remove functions are used to temporarily apply a \"velocity-animating\" class to elements while they're animating. */\r\n\t\t\t\taddClass: function(element, className) {\r\n\t\t\t\t\tif (element) {\r\n\t\t\t\t\t\tif (element.classList) {\r\n\t\t\t\t\t\t\telement.classList.add(className);\r\n\t\t\t\t\t\t} else if (Type.isString(element.className)) {\r\n\t\t\t\t\t\t\t// Element.className is around 15% faster then set/getAttribute\r\n\t\t\t\t\t\t\telement.className += (element.className.length ? \" \" : \"\") + className;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Work around for IE strict mode animating SVG - and anything else that doesn't behave correctly - the same way jQuery does it\r\n\t\t\t\t\t\t\tvar currentClass = element.getAttribute(IE <= 7 ? \"className\" : \"class\") || \"\";\r\n\r\n\t\t\t\t\t\t\telement.setAttribute(\"class\", currentClass + (currentClass ? \" \" : \"\") + className);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tremoveClass: function(element, className) {\r\n\t\t\t\t\tif (element) {\r\n\t\t\t\t\t\tif (element.classList) {\r\n\t\t\t\t\t\t\telement.classList.remove(className);\r\n\t\t\t\t\t\t} else if (Type.isString(element.className)) {\r\n\t\t\t\t\t\t\t// Element.className is around 15% faster then set/getAttribute\r\n\t\t\t\t\t\t\t// TODO: Need some jsperf tests on performance - can we get rid of the regex and maybe use split / array manipulation?\r\n\t\t\t\t\t\t\telement.className = element.className.toString().replace(new RegExp(\"(^|\\\\s)\" + className.split(\" \").join(\"|\") + \"(\\\\s|$)\", \"gi\"), \" \");\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t// Work around for IE strict mode animating SVG - and anything else that doesn't behave correctly - the same way jQuery does it\r\n\t\t\t\t\t\t\tvar currentClass = element.getAttribute(IE <= 7 ? \"className\" : \"class\") || \"\";\r\n\r\n\t\t\t\t\t\t\telement.setAttribute(\"class\", currentClass.replace(new RegExp(\"(^|\\s)\" + className.split(\" \").join(\"|\") + \"(\\s|$)\", \"gi\"), \" \"));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t/****************************\r\n\t\t\t Style Getting & Setting\r\n\t\t\t ****************************/\r\n\r\n\t\t\t/* The singular getPropertyValue, which routes the logic for all normalizations, hooks, and standard CSS properties. */\r\n\t\t\tgetPropertyValue: function(element, property, rootPropertyValue, forceStyleLookup) {\r\n\t\t\t\t/* Get an element's computed property value. */\r\n\t\t\t\t/* Note: Retrieving the value of a CSS property cannot simply be performed by checking an element's\r\n\t\t\t\t style attribute (which only reflects user-defined values). Instead, the browser must be queried for a property's\r\n\t\t\t\t *computed* value. You can read more about getComputedStyle here: https://developer.mozilla.org/en/docs/Web/API/window.getComputedStyle */\r\n\t\t\t\tfunction computePropertyValue(element, property) {\r\n\t\t\t\t\t/* When box-sizing isn't set to border-box, height and width style values are incorrectly computed when an\r\n\t\t\t\t\t element's scrollbars are visible (which expands the element's dimensions). Thus, we defer to the more accurate\r\n\t\t\t\t\t offsetHeight/Width property, which includes the total dimensions for interior, border, padding, and scrollbar.\r\n\t\t\t\t\t We subtract border and padding to get the sum of interior + scrollbar. */\r\n\t\t\t\t\tvar computedValue = 0;\r\n\r\n\t\t\t\t\t/* IE<=8 doesn't support window.getComputedStyle, thus we defer to jQuery, which has an extensive array\r\n\t\t\t\t\t of hacks to accurately retrieve IE8 property values. Re-implementing that logic here is not worth bloating the\r\n\t\t\t\t\t codebase for a dying browser. The performance repercussions of using jQuery here are minimal since\r\n\t\t\t\t\t Velocity is optimized to rarely (and sometimes never) query the DOM. Further, the $.css() codepath isn't that slow. */\r\n\t\t\t\t\tif (IE <= 8) {\r\n\t\t\t\t\t\tcomputedValue = $.css(element, property); /* GET */\r\n\t\t\t\t\t\t/* All other browsers support getComputedStyle. The returned live object reference is cached onto its\r\n\t\t\t\t\t\t associated element so that it does not need to be refetched upon every GET. */\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* Browsers do not return height and width values for elements that are set to display:\"none\". Thus, we temporarily\r\n\t\t\t\t\t\t toggle display to the element type's default value. */\r\n\t\t\t\t\t\tvar toggleDisplay = false;\r\n\r\n\t\t\t\t\t\tif (/^(width|height)$/.test(property) && CSS.getPropertyValue(element, \"display\") === 0) {\r\n\t\t\t\t\t\t\ttoggleDisplay = true;\r\n\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", CSS.Values.getDisplayType(element));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar revertDisplay = function() {\r\n\t\t\t\t\t\t\tif (toggleDisplay) {\r\n\t\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", \"none\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif (!forceStyleLookup) {\r\n\t\t\t\t\t\t\tif (property === \"height\" && CSS.getPropertyValue(element, \"boxSizing\").toString().toLowerCase() !== \"border-box\") {\r\n\t\t\t\t\t\t\t\tvar contentBoxHeight = element.offsetHeight - (parseFloat(CSS.getPropertyValue(element, \"borderTopWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"borderBottomWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingTop\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingBottom\")) || 0);\r\n\t\t\t\t\t\t\t\trevertDisplay();\r\n\r\n\t\t\t\t\t\t\t\treturn contentBoxHeight;\r\n\t\t\t\t\t\t\t} else if (property === \"width\" && CSS.getPropertyValue(element, \"boxSizing\").toString().toLowerCase() !== \"border-box\") {\r\n\t\t\t\t\t\t\t\tvar contentBoxWidth = element.offsetWidth - (parseFloat(CSS.getPropertyValue(element, \"borderLeftWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"borderRightWidth\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingLeft\")) || 0) - (parseFloat(CSS.getPropertyValue(element, \"paddingRight\")) || 0);\r\n\t\t\t\t\t\t\t\trevertDisplay();\r\n\r\n\t\t\t\t\t\t\t\treturn contentBoxWidth;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar computedStyle;\r\n\r\n\t\t\t\t\t\t/* For elements that Velocity hasn't been called on directly (e.g. when Velocity queries the DOM on behalf\r\n\t\t\t\t\t\t of a parent of an element its animating), perform a direct getComputedStyle lookup since the object isn't cached. */\r\n\t\t\t\t\t\tif (Data(element) === undefined) {\r\n\t\t\t\t\t\t\tcomputedStyle = window.getComputedStyle(element, null); /* GET */\r\n\t\t\t\t\t\t\t/* If the computedStyle object has yet to be cached, do so now. */\r\n\t\t\t\t\t\t} else if (!Data(element).computedStyle) {\r\n\t\t\t\t\t\t\tcomputedStyle = Data(element).computedStyle = window.getComputedStyle(element, null); /* GET */\r\n\t\t\t\t\t\t\t/* If computedStyle is cached, use it. */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcomputedStyle = Data(element).computedStyle;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* IE and Firefox do not return a value for the generic borderColor -- they only return individual values for each border side's color.\r\n\t\t\t\t\t\t Also, in all browsers, when border colors aren't all the same, a compound value is returned that Velocity isn't setup to parse.\r\n\t\t\t\t\t\t So, as a polyfill for querying individual border side colors, we just return the top border's color and animate all borders from that value. */\r\n\t\t\t\t\t\tif (property === \"borderColor\") {\r\n\t\t\t\t\t\t\tproperty = \"borderTopColor\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* IE9 has a bug in which the \"filter\" property must be accessed from computedStyle using the getPropertyValue method\r\n\t\t\t\t\t\t instead of a direct property lookup. The getPropertyValue method is slower than a direct lookup, which is why we avoid it by default. */\r\n\t\t\t\t\t\tif (IE === 9 && property === \"filter\") {\r\n\t\t\t\t\t\t\tcomputedValue = computedStyle.getPropertyValue(property); /* GET */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcomputedValue = computedStyle[property];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Fall back to the property's style value (if defined) when computedValue returns nothing,\r\n\t\t\t\t\t\t which can happen when the element hasn't been painted. */\r\n\t\t\t\t\t\tif (computedValue === \"\" || computedValue === null) {\r\n\t\t\t\t\t\t\tcomputedValue = element.style[property];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\trevertDisplay();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* For top, right, bottom, and left (TRBL) values that are set to \"auto\" on elements of \"fixed\" or \"absolute\" position,\r\n\t\t\t\t\t defer to jQuery for converting \"auto\" to a numeric value. (For elements with a \"static\" or \"relative\" position, \"auto\" has the same\r\n\t\t\t\t\t effect as being set to 0, so no conversion is necessary.) */\r\n\t\t\t\t\t/* An example of why numeric conversion is necessary: When an element with \"position:absolute\" has an untouched \"left\"\r\n\t\t\t\t\t property, which reverts to \"auto\", left's value is 0 relative to its parent element, but is often non-zero relative\r\n\t\t\t\t\t to its *containing* (not parent) element, which is the nearest \"position:relative\" ancestor or the viewport (and always the viewport in the case of \"position:fixed\"). */\r\n\t\t\t\t\tif (computedValue === \"auto\" && /^(top|right|bottom|left)$/i.test(property)) {\r\n\t\t\t\t\t\tvar position = computePropertyValue(element, \"position\"); /* GET */\r\n\r\n\t\t\t\t\t\t/* For absolute positioning, jQuery's $.position() only returns values for top and left;\r\n\t\t\t\t\t\t right and bottom will have their \"auto\" value reverted to 0. */\r\n\t\t\t\t\t\t/* Note: A jQuery object must be created here since jQuery doesn't have a low-level alias for $.position().\r\n\t\t\t\t\t\t Not a big deal since we're currently in a GET batch anyway. */\r\n\t\t\t\t\t\tif (position === \"fixed\" || (position === \"absolute\" && /top|left/i.test(property))) {\r\n\t\t\t\t\t\t\t/* Note: jQuery strips the pixel unit from its returned values; we re-add it here to conform with computePropertyValue's behavior. */\r\n\t\t\t\t\t\t\tcomputedValue = $(element).position()[property] + \"px\"; /* GET */\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn computedValue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar propertyValue;\r\n\r\n\t\t\t\t/* If this is a hooked property (e.g. \"clipLeft\" instead of the root property of \"clip\"),\r\n\t\t\t\t extract the hook's value from a normalized rootPropertyValue using CSS.Hooks.extractValue(). */\r\n\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\tvar hook = property,\r\n\t\t\t\t\t\t\thookRoot = CSS.Hooks.getRoot(hook);\r\n\r\n\t\t\t\t\t/* If a cached rootPropertyValue wasn't passed in (which Velocity always attempts to do in order to avoid requerying the DOM),\r\n\t\t\t\t\t query the DOM for the root property's value. */\r\n\t\t\t\t\tif (rootPropertyValue === undefined) {\r\n\t\t\t\t\t\t/* Since the browser is now being directly queried, use the official post-prefixing property name for this lookup. */\r\n\t\t\t\t\t\trootPropertyValue = CSS.getPropertyValue(element, CSS.Names.prefixCheck(hookRoot)[0]); /* GET */\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If this root has a normalization registered, peform the associated normalization extraction. */\r\n\t\t\t\t\tif (CSS.Normalizations.registered[hookRoot]) {\r\n\t\t\t\t\t\trootPropertyValue = CSS.Normalizations.registered[hookRoot](\"extract\", element, rootPropertyValue);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Extract the hook's value. */\r\n\t\t\t\t\tpropertyValue = CSS.Hooks.extractValue(hook, rootPropertyValue);\r\n\r\n\t\t\t\t\t/* If this is a normalized property (e.g. \"opacity\" becomes \"filter\" in <=IE8) or \"translateX\" becomes \"transform\"),\r\n\t\t\t\t\t normalize the property's name and value, and handle the special case of transforms. */\r\n\t\t\t\t\t/* Note: Normalizing a property is mutually exclusive from hooking a property since hook-extracted values are strictly\r\n\t\t\t\t\t numerical and therefore do not require normalization extraction. */\r\n\t\t\t\t} else if (CSS.Normalizations.registered[property]) {\r\n\t\t\t\t\tvar normalizedPropertyName,\r\n\t\t\t\t\t\t\tnormalizedPropertyValue;\r\n\r\n\t\t\t\t\tnormalizedPropertyName = CSS.Normalizations.registered[property](\"name\", element);\r\n\r\n\t\t\t\t\t/* Transform values are calculated via normalization extraction (see below), which checks against the element's transformCache.\r\n\t\t\t\t\t At no point do transform GETs ever actually query the DOM; initial stylesheet values are never processed.\r\n\t\t\t\t\t This is because parsing 3D transform matrices is not always accurate and would bloat our codebase;\r\n\t\t\t\t\t thus, normalization extraction defaults initial transform values to their zero-values (e.g. 1 for scaleX and 0 for translateX). */\r\n\t\t\t\t\tif (normalizedPropertyName !== \"transform\") {\r\n\t\t\t\t\t\tnormalizedPropertyValue = computePropertyValue(element, CSS.Names.prefixCheck(normalizedPropertyName)[0]); /* GET */\r\n\r\n\t\t\t\t\t\t/* If the value is a CSS null-value and this property has a hook template, use that zero-value template so that hooks can be extracted from it. */\r\n\t\t\t\t\t\tif (CSS.Values.isCSSNullValue(normalizedPropertyValue) && CSS.Hooks.templates[property]) {\r\n\t\t\t\t\t\t\tnormalizedPropertyValue = CSS.Hooks.templates[property][1];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tpropertyValue = CSS.Normalizations.registered[property](\"extract\", element, normalizedPropertyValue);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* If a (numeric) value wasn't produced via hook extraction or normalization, query the DOM. */\r\n\t\t\t\tif (!/^[\\d-]/.test(propertyValue)) {\r\n\t\t\t\t\t/* For SVG elements, dimensional properties (which SVGAttribute() detects) are tweened via\r\n\t\t\t\t\t their HTML attribute values instead of their CSS style values. */\r\n\t\t\t\t\tvar data = Data(element);\r\n\r\n\t\t\t\t\tif (data && data.isSVG && CSS.Names.SVGAttribute(property)) {\r\n\t\t\t\t\t\t/* Since the height/width attribute values must be set manually, they don't reflect computed values.\r\n\t\t\t\t\t\t Thus, we use use getBBox() to ensure we always get values for elements with undefined height/width attributes. */\r\n\t\t\t\t\t\tif (/^(height|width)$/i.test(property)) {\r\n\t\t\t\t\t\t\t/* Firefox throws an error if .getBBox() is called on an SVG that isn't attached to the DOM. */\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tpropertyValue = element.getBBox()[property];\r\n\t\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\tpropertyValue = 0;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/* Otherwise, access the attribute value directly. */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tpropertyValue = element.getAttribute(property);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpropertyValue = computePropertyValue(element, CSS.Names.prefixCheck(property)[0]); /* GET */\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Since property lookups are for animation purposes (which entails computing the numeric delta between start and end values),\r\n\t\t\t\t convert CSS null-values to an integer of value 0. */\r\n\t\t\t\tif (CSS.Values.isCSSNullValue(propertyValue)) {\r\n\t\t\t\t\tpropertyValue = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (Velocity.debug >= 2) {\r\n\t\t\t\t\tconsole.log(\"Get \" + property + \": \" + propertyValue);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn propertyValue;\r\n\t\t\t},\r\n\t\t\t/* The singular setPropertyValue, which routes the logic for all normalizations, hooks, and standard CSS properties. */\r\n\t\t\tsetPropertyValue: function(element, property, propertyValue, rootPropertyValue, scrollData) {\r\n\t\t\t\tvar propertyName = property;\r\n\r\n\t\t\t\t/* In order to be subjected to call options and element queueing, scroll animation is routed through Velocity as if it were a standard CSS property. */\r\n\t\t\t\tif (property === \"scroll\") {\r\n\t\t\t\t\t/* If a container option is present, scroll the container instead of the browser window. */\r\n\t\t\t\t\tif (scrollData.container) {\r\n\t\t\t\t\t\tscrollData.container[\"scroll\" + scrollData.direction] = propertyValue;\r\n\t\t\t\t\t\t/* Otherwise, Velocity defaults to scrolling the browser window. */\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (scrollData.direction === \"Left\") {\r\n\t\t\t\t\t\t\twindow.scrollTo(propertyValue, scrollData.alternateValue);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\twindow.scrollTo(scrollData.alternateValue, propertyValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t/* Transforms (translateX, rotateZ, etc.) are applied to a per-element transformCache object, which is manually flushed via flushTransformCache().\r\n\t\t\t\t\t Thus, for now, we merely cache transforms being SET. */\r\n\t\t\t\t\tif (CSS.Normalizations.registered[property] && CSS.Normalizations.registered[property](\"name\", element) === \"transform\") {\r\n\t\t\t\t\t\t/* Perform a normalization injection. */\r\n\t\t\t\t\t\t/* Note: The normalization logic handles the transformCache updating. */\r\n\t\t\t\t\t\tCSS.Normalizations.registered[property](\"inject\", element, propertyValue);\r\n\r\n\t\t\t\t\t\tpropertyName = \"transform\";\r\n\t\t\t\t\t\tpropertyValue = Data(element).transformCache[property];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t/* Inject hooks. */\r\n\t\t\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\t\t\tvar hookName = property,\r\n\t\t\t\t\t\t\t\t\thookRoot = CSS.Hooks.getRoot(property);\r\n\r\n\t\t\t\t\t\t\t/* If a cached rootPropertyValue was not provided, query the DOM for the hookRoot's current value. */\r\n\t\t\t\t\t\t\trootPropertyValue = rootPropertyValue || CSS.getPropertyValue(element, hookRoot); /* GET */\r\n\r\n\t\t\t\t\t\t\tpropertyValue = CSS.Hooks.injectValue(hookName, propertyValue, rootPropertyValue);\r\n\t\t\t\t\t\t\tproperty = hookRoot;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Normalize names and values. */\r\n\t\t\t\t\t\tif (CSS.Normalizations.registered[property]) {\r\n\t\t\t\t\t\t\tpropertyValue = CSS.Normalizations.registered[property](\"inject\", element, propertyValue);\r\n\t\t\t\t\t\t\tproperty = CSS.Normalizations.registered[property](\"name\", element);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Assign the appropriate vendor prefix before performing an official style update. */\r\n\t\t\t\t\t\tpropertyName = CSS.Names.prefixCheck(property)[0];\r\n\r\n\t\t\t\t\t\t/* A try/catch is used for IE<=8, which throws an error when \"invalid\" CSS values are set, e.g. a negative width.\r\n\t\t\t\t\t\t Try/catch is avoided for other browsers since it incurs a performance overhead. */\r\n\t\t\t\t\t\tif (IE <= 8) {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\telement.style[propertyName] = propertyValue;\r\n\t\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\tconsole.log(\"Browser does not support [\" + propertyValue + \"] for [\" + propertyName + \"]\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/* SVG elements have their dimensional properties (width, height, x, y, cx, etc.) applied directly as attributes instead of as styles. */\r\n\t\t\t\t\t\t\t/* Note: IE8 does not support SVG elements, so it's okay that we skip it for SVG animation. */\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tvar data = Data(element);\r\n\r\n\t\t\t\t\t\t\tif (data && data.isSVG && CSS.Names.SVGAttribute(property)) {\r\n\t\t\t\t\t\t\t\t/* Note: For SVG attributes, vendor-prefixed property names are never used. */\r\n\t\t\t\t\t\t\t\t/* Note: Not all CSS properties can be animated via attributes, but the browser won't throw an error for unsupported properties. */\r\n\t\t\t\t\t\t\t\telement.setAttribute(property, propertyValue);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\telement.style[propertyName] = propertyValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (Velocity.debug >= 2) {\r\n\t\t\t\t\t\t\tconsole.log(\"Set \" + property + \" (\" + propertyName + \"): \" + propertyValue);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Return the normalized property name and value in case the caller wants to know how these values were modified before being applied to the DOM. */\r\n\t\t\t\treturn [propertyName, propertyValue];\r\n\t\t\t},\r\n\t\t\t/* To increase performance by batching transform updates into a single SET, transforms are not directly applied to an element until flushTransformCache() is called. */\r\n\t\t\t/* Note: Velocity applies transform properties in the same order that they are chronogically introduced to the element's CSS styles. */\r\n\t\t\tflushTransformCache: function(element) {\r\n\t\t\t\tvar transformString = \"\",\r\n\t\t\t\t\t\tdata = Data(element);\r\n\r\n\t\t\t\t/* Certain browsers require that SVG transforms be applied as an attribute. However, the SVG transform attribute takes a modified version of CSS's transform string\r\n\t\t\t\t (units are dropped and, except for skewX/Y, subproperties are merged into their master property -- e.g. scaleX and scaleY are merged into scale(X Y). */\r\n\t\t\t\tif ((IE || (Velocity.State.isAndroid && !Velocity.State.isChrome)) && data && data.isSVG) {\r\n\t\t\t\t\t/* Since transform values are stored in their parentheses-wrapped form, we use a helper function to strip out their numeric values.\r\n\t\t\t\t\t Further, SVG transform properties only take unitless (representing pixels) values, so it's okay that parseFloat() strips the unit suffixed to the float value. */\r\n\t\t\t\t\tvar getTransformFloat = function(transformProperty) {\r\n\t\t\t\t\t\treturn parseFloat(CSS.getPropertyValue(element, transformProperty));\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/* Create an object to organize all the transforms that we'll apply to the SVG element. To keep the logic simple,\r\n\t\t\t\t\t we process *all* transform properties -- even those that may not be explicitly applied (since they default to their zero-values anyway). */\r\n\t\t\t\t\tvar SVGTransforms = {\r\n\t\t\t\t\t\ttranslate: [getTransformFloat(\"translateX\"), getTransformFloat(\"translateY\")],\r\n\t\t\t\t\t\tskewX: [getTransformFloat(\"skewX\")], skewY: [getTransformFloat(\"skewY\")],\r\n\t\t\t\t\t\t/* If the scale property is set (non-1), use that value for the scaleX and scaleY values\r\n\t\t\t\t\t\t (this behavior mimics the result of animating all these properties at once on HTML elements). */\r\n\t\t\t\t\t\tscale: getTransformFloat(\"scale\") !== 1 ? [getTransformFloat(\"scale\"), getTransformFloat(\"scale\")] : [getTransformFloat(\"scaleX\"), getTransformFloat(\"scaleY\")],\r\n\t\t\t\t\t\t/* Note: SVG's rotate transform takes three values: rotation degrees followed by the X and Y values\r\n\t\t\t\t\t\t defining the rotation's origin point. We ignore the origin values (default them to 0). */\r\n\t\t\t\t\t\trotate: [getTransformFloat(\"rotateZ\"), 0, 0]\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/* Iterate through the transform properties in the user-defined property map order.\r\n\t\t\t\t\t (This mimics the behavior of non-SVG transform animation.) */\r\n\t\t\t\t\t$.each(Data(element).transformCache, function(transformName) {\r\n\t\t\t\t\t\t/* Except for with skewX/Y, revert the axis-specific transform subproperties to their axis-free master\r\n\t\t\t\t\t\t properties so that they match up with SVG's accepted transform properties. */\r\n\t\t\t\t\t\tif (/^translate/i.test(transformName)) {\r\n\t\t\t\t\t\t\ttransformName = \"translate\";\r\n\t\t\t\t\t\t} else if (/^scale/i.test(transformName)) {\r\n\t\t\t\t\t\t\ttransformName = \"scale\";\r\n\t\t\t\t\t\t} else if (/^rotate/i.test(transformName)) {\r\n\t\t\t\t\t\t\ttransformName = \"rotate\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Check that we haven't yet deleted the property from the SVGTransforms container. */\r\n\t\t\t\t\t\tif (SVGTransforms[transformName]) {\r\n\t\t\t\t\t\t\t/* Append the transform property in the SVG-supported transform format. As per the spec, surround the space-delimited values in parentheses. */\r\n\t\t\t\t\t\t\ttransformString += transformName + \"(\" + SVGTransforms[transformName].join(\" \") + \")\" + \" \";\r\n\r\n\t\t\t\t\t\t\t/* After processing an SVG transform property, delete it from the SVGTransforms container so we don't\r\n\t\t\t\t\t\t\t re-insert the same master property if we encounter another one of its axis-specific properties. */\r\n\t\t\t\t\t\t\tdelete SVGTransforms[transformName];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar transformValue,\r\n\t\t\t\t\t\t\tperspective;\r\n\r\n\t\t\t\t\t/* Transform properties are stored as members of the transformCache object. Concatenate all the members into a string. */\r\n\t\t\t\t\t$.each(Data(element).transformCache, function(transformName) {\r\n\t\t\t\t\t\ttransformValue = Data(element).transformCache[transformName];\r\n\r\n\t\t\t\t\t\t/* Transform's perspective subproperty must be set first in order to take effect. Store it temporarily. */\r\n\t\t\t\t\t\tif (transformName === \"transformPerspective\") {\r\n\t\t\t\t\t\t\tperspective = transformValue;\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* IE9 only supports one rotation type, rotateZ, which it refers to as \"rotate\". */\r\n\t\t\t\t\t\tif (IE === 9 && transformName === \"rotateZ\") {\r\n\t\t\t\t\t\t\ttransformName = \"rotate\";\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttransformString += transformName + transformValue + \" \";\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* If present, set the perspective subproperty first. */\r\n\t\t\t\t\tif (perspective) {\r\n\t\t\t\t\t\ttransformString = \"perspective\" + perspective + \" \" + transformString;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tCSS.setPropertyValue(element, \"transform\", transformString);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/* Register hooks and normalizations. */\r\n\t\tCSS.Hooks.register();\r\n\t\tCSS.Normalizations.register();\r\n\r\n\t\t/* Allow hook setting in the same fashion as jQuery's $.css(). */\r\n\t\tVelocity.hook = function(elements, arg2, arg3) {\r\n\t\t\tvar value;\r\n\r\n\t\t\telements = sanitizeElements(elements);\r\n\r\n\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t/* Initialize Velocity's per-element data cache if this element hasn't previously been animated. */\r\n\t\t\t\tif (Data(element) === undefined) {\r\n\t\t\t\t\tVelocity.init(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Get property value. If an element set was passed in, only return the value for the first element. */\r\n\t\t\t\tif (arg3 === undefined) {\r\n\t\t\t\t\tif (value === undefined) {\r\n\t\t\t\t\t\tvalue = CSS.getPropertyValue(element, arg2);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t/* Set property value. */\r\n\t\t\t\t} else {\r\n\t\t\t\t\t/* sPV returns an array of the normalized propertyName/propertyValue pair used to update the DOM. */\r\n\t\t\t\t\tvar adjustedSet = CSS.setPropertyValue(element, arg2, arg3);\r\n\r\n\t\t\t\t\t/* Transform properties don't automatically set. They have to be flushed to the DOM. */\r\n\t\t\t\t\tif (adjustedSet[0] === \"transform\") {\r\n\t\t\t\t\t\tVelocity.CSS.flushTransformCache(element);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvalue = adjustedSet;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn value;\r\n\t\t};\r\n\r\n\t\t/*****************\r\n\t\t Animation\r\n\t\t *****************/\r\n\r\n\t\tvar animate = function() {\r\n\t\t\tvar opts;\r\n\r\n\t\t\t/******************\r\n\t\t\t Call Chain\r\n\t\t\t ******************/\r\n\r\n\t\t\t/* Logic for determining what to return to the call stack when exiting out of Velocity. */\r\n\t\t\tfunction getChain() {\r\n\t\t\t\t/* If we are using the utility function, attempt to return this call's promise. If no promise library was detected,\r\n\t\t\t\t default to null instead of returning the targeted elements so that utility function's return value is standardized. */\r\n\t\t\t\tif (isUtility) {\r\n\t\t\t\t\treturn promiseData.promise || null;\r\n\t\t\t\t\t/* Otherwise, if we're using $.fn, return the jQuery-/Zepto-wrapped element set. */\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn elementsWrapped;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/*************************\r\n\t\t\t Arguments Assignment\r\n\t\t\t *************************/\r\n\r\n\t\t\t/* To allow for expressive CoffeeScript code, Velocity supports an alternative syntax in which \"elements\" (or \"e\"), \"properties\" (or \"p\"), and \"options\" (or \"o\")\r\n\t\t\t objects are defined on a container object that's passed in as Velocity's sole argument. */\r\n\t\t\t/* Note: Some browsers automatically populate arguments with a \"properties\" object. We detect it by checking for its default \"names\" property. */\r\n\t\t\tvar syntacticSugar = (arguments[0] && (arguments[0].p || (($.isPlainObject(arguments[0].properties) && !arguments[0].properties.names) || Type.isString(arguments[0].properties)))),\r\n\t\t\t\t\t/* Whether Velocity was called via the utility function (as opposed to on a jQuery/Zepto object). */\r\n\t\t\t\t\tisUtility,\r\n\t\t\t\t\t/* When Velocity is called via the utility function ($.Velocity()/Velocity()), elements are explicitly\r\n\t\t\t\t\t passed in as the first parameter. Thus, argument positioning varies. We normalize them here. */\r\n\t\t\t\t\telementsWrapped,\r\n\t\t\t\t\targumentIndex;\r\n\r\n\t\t\tvar elements,\r\n\t\t\t\t\tpropertiesMap,\r\n\t\t\t\t\toptions;\r\n\r\n\t\t\t/* Detect jQuery/Zepto elements being animated via the $.fn method. */\r\n\t\t\tif (Type.isWrapped(this)) {\r\n\t\t\t\tisUtility = false;\r\n\r\n\t\t\t\targumentIndex = 0;\r\n\t\t\t\telements = this;\r\n\t\t\t\telementsWrapped = this;\r\n\t\t\t\t/* Otherwise, raw elements are being animated via the utility function. */\r\n\t\t\t} else {\r\n\t\t\t\tisUtility = true;\r\n\r\n\t\t\t\targumentIndex = 1;\r\n\t\t\t\telements = syntacticSugar ? (arguments[0].elements || arguments[0].e) : arguments[0];\r\n\t\t\t}\r\n\r\n\t\t\t/***************\r\n\t\t\t Promises\r\n\t\t\t ***************/\r\n\r\n\t\t\tvar promiseData = {\r\n\t\t\t\tpromise: null,\r\n\t\t\t\tresolver: null,\r\n\t\t\t\trejecter: null\r\n\t\t\t};\r\n\r\n\t\t\t/* If this call was made via the utility function (which is the default method of invocation when jQuery/Zepto are not being used), and if\r\n\t\t\t promise support was detected, create a promise object for this call and store references to its resolver and rejecter methods. The resolve\r\n\t\t\t method is used when a call completes naturally or is prematurely stopped by the user. In both cases, completeCall() handles the associated\r\n\t\t\t call cleanup and promise resolving logic. The reject method is used when an invalid set of arguments is passed into a Velocity call. */\r\n\t\t\t/* Note: Velocity employs a call-based queueing architecture, which means that stopping an animating element actually stops the full call that\r\n\t\t\t triggered it -- not that one element exclusively. Similarly, there is one promise per call, and all elements targeted by a Velocity call are\r\n\t\t\t grouped together for the purposes of resolving and rejecting a promise. */\r\n\t\t\tif (isUtility && Velocity.Promise) {\r\n\t\t\t\tpromiseData.promise = new Velocity.Promise(function(resolve, reject) {\r\n\t\t\t\t\tpromiseData.resolver = resolve;\r\n\t\t\t\t\tpromiseData.rejecter = reject;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (syntacticSugar) {\r\n\t\t\t\tpropertiesMap = arguments[0].properties || arguments[0].p;\r\n\t\t\t\toptions = arguments[0].options || arguments[0].o;\r\n\t\t\t} else {\r\n\t\t\t\tpropertiesMap = arguments[argumentIndex];\r\n\t\t\t\toptions = arguments[argumentIndex + 1];\r\n\t\t\t}\r\n\r\n\t\t\telements = sanitizeElements(elements);\r\n\r\n\t\t\tif (!elements) {\r\n\t\t\t\tif (promiseData.promise) {\r\n\t\t\t\t\tif (!propertiesMap || !options || options.promiseRejectEmpty !== false) {\r\n\t\t\t\t\t\tpromiseData.rejecter();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpromiseData.resolver();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t/* The length of the element set (in the form of a nodeList or an array of elements) is defaulted to 1 in case a\r\n\t\t\t single raw DOM element is passed in (which doesn't contain a length property). */\r\n\t\t\tvar elementsLength = elements.length,\r\n\t\t\t\t\telementsIndex = 0;\r\n\r\n\t\t\t/***************************\r\n\t\t\t Argument Overloading\r\n\t\t\t ***************************/\r\n\r\n\t\t\t/* Support is included for jQuery's argument overloading: $.animate(propertyMap [, duration] [, easing] [, complete]).\r\n\t\t\t Overloading is detected by checking for the absence of an object being passed into options. */\r\n\t\t\t/* Note: The stop/finish/pause/resume actions do not accept animation options, and are therefore excluded from this check. */\r\n\t\t\tif (!/^(stop|finish|finishAll|pause|resume)$/i.test(propertiesMap) && !$.isPlainObject(options)) {\r\n\t\t\t\t/* The utility function shifts all arguments one position to the right, so we adjust for that offset. */\r\n\t\t\t\tvar startingArgumentPosition = argumentIndex + 1;\r\n\r\n\t\t\t\toptions = {};\r\n\r\n\t\t\t\t/* Iterate through all options arguments */\r\n\t\t\t\tfor (var i = startingArgumentPosition; i < arguments.length; i++) {\r\n\t\t\t\t\t/* Treat a number as a duration. Parse it out. */\r\n\t\t\t\t\t/* Note: The following RegEx will return true if passed an array with a number as its first item.\r\n\t\t\t\t\t Thus, arrays are skipped from this check. */\r\n\t\t\t\t\tif (!Type.isArray(arguments[i]) && (/^(fast|normal|slow)$/i.test(arguments[i]) || /^\\d/.test(arguments[i]))) {\r\n\t\t\t\t\t\toptions.duration = arguments[i];\r\n\t\t\t\t\t\t/* Treat strings and arrays as easings. */\r\n\t\t\t\t\t} else if (Type.isString(arguments[i]) || Type.isArray(arguments[i])) {\r\n\t\t\t\t\t\toptions.easing = arguments[i];\r\n\t\t\t\t\t\t/* Treat a function as a complete callback. */\r\n\t\t\t\t\t} else if (Type.isFunction(arguments[i])) {\r\n\t\t\t\t\t\toptions.complete = arguments[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/*********************\r\n\t\t\t Action Detection\r\n\t\t\t *********************/\r\n\r\n\t\t\t/* Velocity's behavior is categorized into \"actions\": Elements can either be specially scrolled into view,\r\n\t\t\t or they can be started, stopped, paused, resumed, or reversed . If a literal or referenced properties map is passed in as Velocity's\r\n\t\t\t first argument, the associated action is \"start\". Alternatively, \"scroll\", \"reverse\", \"pause\", \"resume\" or \"stop\" can be passed in \r\n\t\t\t instead of a properties map. */\r\n\t\t\tvar action;\r\n\r\n\t\t\tswitch (propertiesMap) {\r\n\t\t\t\tcase \"scroll\":\r\n\t\t\t\t\taction = \"scroll\";\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"reverse\":\r\n\t\t\t\t\taction = \"reverse\";\r\n\t\t\t\t\tbreak;\r\n\r\n\t\t\t\tcase \"pause\":\r\n\r\n\t\t\t\t\t/*******************\r\n\t\t\t\t\t Action: Pause\r\n\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\tvar currentTime = (new Date()).getTime();\r\n\r\n\t\t\t\t\t/* Handle delay timers */\r\n\t\t\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t\t\tpauseDelayOnElement(element, currentTime);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Pause and Resume are call-wide (not on a per element basis). Thus, calling pause or resume on a \r\n\t\t\t\t\t single element will cause any calls that containt tweens for that element to be paused/resumed\r\n\t\t\t\t\t as well. */\r\n\r\n\t\t\t\t\t/* Iterate through all calls and pause any that contain any of our elements */\r\n\t\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\r\n\t\t\t\t\t\tvar found = false;\r\n\t\t\t\t\t\t/* Inactive calls are set to false by the logic inside completeCall(). Skip them. */\r\n\t\t\t\t\t\tif (activeCall) {\r\n\t\t\t\t\t\t\t/* Iterate through the active call's targeted elements. */\r\n\t\t\t\t\t\t\t$.each(activeCall[1], function(k, activeElement) {\r\n\t\t\t\t\t\t\t\tvar queueName = (options === undefined) ? \"\" : options;\r\n\r\n\t\t\t\t\t\t\t\tif (queueName !== true && (activeCall[2].queue !== queueName) && !(options === undefined && activeCall[2].queue === false)) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Iterate through the calls targeted by the stop command. */\r\n\t\t\t\t\t\t\t\t$.each(elements, function(l, element) {\r\n\t\t\t\t\t\t\t\t\t/* Check that this call was applied to the target element. */\r\n\t\t\t\t\t\t\t\t\tif (element === activeElement) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Set call to paused */\r\n\t\t\t\t\t\t\t\t\t\tactiveCall[5] = {\r\n\t\t\t\t\t\t\t\t\t\t\tresume: false\r\n\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Once we match an element, we can bounce out to the next call entirely */\r\n\t\t\t\t\t\t\t\t\t\tfound = true;\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t/* Proceed to check next call if we have already matched */\r\n\t\t\t\t\t\t\t\tif (found) {\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Since pause creates no new tweens, exit out of Velocity. */\r\n\t\t\t\t\treturn getChain();\r\n\r\n\t\t\t\tcase \"resume\":\r\n\r\n\t\t\t\t\t/*******************\r\n\t\t\t\t\t Action: Resume\r\n\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\t/* Handle delay timers */\r\n\t\t\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t\t\tresumeDelayOnElement(element, currentTime);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Pause and Resume are call-wide (not on a per elemnt basis). Thus, calling pause or resume on a \r\n\t\t\t\t\t single element will cause any calls that containt tweens for that element to be paused/resumed\r\n\t\t\t\t\t as well. */\r\n\r\n\t\t\t\t\t/* Iterate through all calls and pause any that contain any of our elements */\r\n\t\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\t\t\t\t\t\tvar found = false;\r\n\t\t\t\t\t\t/* Inactive calls are set to false by the logic inside completeCall(). Skip them. */\r\n\t\t\t\t\t\tif (activeCall) {\r\n\t\t\t\t\t\t\t/* Iterate through the active call's targeted elements. */\r\n\t\t\t\t\t\t\t$.each(activeCall[1], function(k, activeElement) {\r\n\t\t\t\t\t\t\t\tvar queueName = (options === undefined) ? \"\" : options;\r\n\r\n\t\t\t\t\t\t\t\tif (queueName !== true && (activeCall[2].queue !== queueName) && !(options === undefined && activeCall[2].queue === false)) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Skip any calls that have never been paused */\r\n\t\t\t\t\t\t\t\tif (!activeCall[5]) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Iterate through the calls targeted by the stop command. */\r\n\t\t\t\t\t\t\t\t$.each(elements, function(l, element) {\r\n\t\t\t\t\t\t\t\t\t/* Check that this call was applied to the target element. */\r\n\t\t\t\t\t\t\t\t\tif (element === activeElement) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Flag a pause object to be resumed, which will occur during the next tick. In\r\n\t\t\t\t\t\t\t\t\t\t addition, the pause object will at that time be deleted */\r\n\t\t\t\t\t\t\t\t\t\tactiveCall[5].resume = true;\r\n\r\n\t\t\t\t\t\t\t\t\t\t/* Once we match an element, we can bounce out to the next call entirely */\r\n\t\t\t\t\t\t\t\t\t\tfound = true;\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t/* Proceed to check next call if we have already matched */\r\n\t\t\t\t\t\t\t\tif (found) {\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Since resume creates no new tweens, exit out of Velocity. */\r\n\t\t\t\t\treturn getChain();\r\n\r\n\t\t\t\tcase \"finish\":\r\n\t\t\t\tcase \"finishAll\":\r\n\t\t\t\tcase \"stop\":\r\n\t\t\t\t\t/*******************\r\n\t\t\t\t\t Action: Stop\r\n\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\t/* Clear the currently-active delay on each targeted element. */\r\n\t\t\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t\t\tif (Data(element) && Data(element).delayTimer) {\r\n\t\t\t\t\t\t\t/* Stop the timer from triggering its cached next() function. */\r\n\t\t\t\t\t\t\tclearTimeout(Data(element).delayTimer.setTimeout);\r\n\r\n\t\t\t\t\t\t\t/* Manually call the next() function so that the subsequent queue items can progress. */\r\n\t\t\t\t\t\t\tif (Data(element).delayTimer.next) {\r\n\t\t\t\t\t\t\t\tData(element).delayTimer.next();\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tdelete Data(element).delayTimer;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* If we want to finish everything in the queue, we have to iterate through it\r\n\t\t\t\t\t\t and call each function. This will make them active calls below, which will\r\n\t\t\t\t\t\t cause them to be applied via the duration setting. */\r\n\t\t\t\t\t\tif (propertiesMap === \"finishAll\" && (options === true || Type.isString(options))) {\r\n\t\t\t\t\t\t\t/* Iterate through the items in the element's queue. */\r\n\t\t\t\t\t\t\t$.each($.queue(element, Type.isString(options) ? options : \"\"), function(_, item) {\r\n\t\t\t\t\t\t\t\t/* The queue array can contain an \"inprogress\" string, which we skip. */\r\n\t\t\t\t\t\t\t\tif (Type.isFunction(item)) {\r\n\t\t\t\t\t\t\t\t\titem();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t/* Clearing the $.queue() array is achieved by resetting it to []. */\r\n\t\t\t\t\t\t\t$.queue(element, Type.isString(options) ? options : \"\", []);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tvar callsToStop = [];\r\n\r\n\t\t\t\t\t/* When the stop action is triggered, the elements' currently active call is immediately stopped. The active call might have\r\n\t\t\t\t\t been applied to multiple elements, in which case all of the call's elements will be stopped. When an element\r\n\t\t\t\t\t is stopped, the next item in its animation queue is immediately triggered. */\r\n\t\t\t\t\t/* An additional argument may be passed in to clear an element's remaining queued calls. Either true (which defaults to the \"fx\" queue)\r\n\t\t\t\t\t or a custom queue string can be passed in. */\r\n\t\t\t\t\t/* Note: The stop command runs prior to Velocity's Queueing phase since its behavior is intended to take effect *immediately*,\r\n\t\t\t\t\t regardless of the element's current queue state. */\r\n\r\n\t\t\t\t\t/* Iterate through every active call. */\r\n\t\t\t\t\t$.each(Velocity.State.calls, function(i, activeCall) {\r\n\t\t\t\t\t\t/* Inactive calls are set to false by the logic inside completeCall(). Skip them. */\r\n\t\t\t\t\t\tif (activeCall) {\r\n\t\t\t\t\t\t\t/* Iterate through the active call's targeted elements. */\r\n\t\t\t\t\t\t\t$.each(activeCall[1], function(k, activeElement) {\r\n\t\t\t\t\t\t\t\t/* If true was passed in as a secondary argument, clear absolutely all calls on this element. Otherwise, only\r\n\t\t\t\t\t\t\t\t clear calls associated with the relevant queue. */\r\n\t\t\t\t\t\t\t\t/* Call stopping logic works as follows:\r\n\t\t\t\t\t\t\t\t - options === true --> stop current default queue calls (and queue:false calls), including remaining queued ones.\r\n\t\t\t\t\t\t\t\t - options === undefined --> stop current queue:\"\" call and all queue:false calls.\r\n\t\t\t\t\t\t\t\t - options === false --> stop only queue:false calls.\r\n\t\t\t\t\t\t\t\t - options === \"custom\" --> stop current queue:\"custom\" call, including remaining queued ones (there is no functionality to only clear the currently-running queue:\"custom\" call). */\r\n\t\t\t\t\t\t\t\tvar queueName = (options === undefined) ? \"\" : options;\r\n\r\n\t\t\t\t\t\t\t\tif (queueName !== true && (activeCall[2].queue !== queueName) && !(options === undefined && activeCall[2].queue === false)) {\r\n\t\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Iterate through the calls targeted by the stop command. */\r\n\t\t\t\t\t\t\t\t$.each(elements, function(l, element) {\r\n\t\t\t\t\t\t\t\t\t/* Check that this call was applied to the target element. */\r\n\t\t\t\t\t\t\t\t\tif (element === activeElement) {\r\n\t\t\t\t\t\t\t\t\t\t/* Optionally clear the remaining queued calls. If we're doing \"finishAll\" this won't find anything,\r\n\t\t\t\t\t\t\t\t\t\t due to the queue-clearing above. */\r\n\t\t\t\t\t\t\t\t\t\tif (options === true || Type.isString(options)) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Iterate through the items in the element's queue. */\r\n\t\t\t\t\t\t\t\t\t\t\t$.each($.queue(element, Type.isString(options) ? options : \"\"), function(_, item) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t/* The queue array can contain an \"inprogress\" string, which we skip. */\r\n\t\t\t\t\t\t\t\t\t\t\t\tif (Type.isFunction(item)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/* Pass the item's callback a flag indicating that we want to abort from the queue call.\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t (Specifically, the queue will resolve the call's associated promise then abort.)  */\r\n\t\t\t\t\t\t\t\t\t\t\t\t\titem(null, true);\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t/* Clearing the $.queue() array is achieved by resetting it to []. */\r\n\t\t\t\t\t\t\t\t\t\t\t$.queue(element, Type.isString(options) ? options : \"\", []);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (propertiesMap === \"stop\") {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Since \"reverse\" uses cached start values (the previous call's endValues), these values must be\r\n\t\t\t\t\t\t\t\t\t\t\t changed to reflect the final value that the elements were actually tweened to. */\r\n\t\t\t\t\t\t\t\t\t\t\t/* Note: If only queue:false/queue:\"custom\" animations are currently running on an element, it won't have a tweensContainer\r\n\t\t\t\t\t\t\t\t\t\t\t object. Also, queue:false/queue:\"custom\" animations can't be reversed. */\r\n\t\t\t\t\t\t\t\t\t\t\tvar data = Data(element);\r\n\t\t\t\t\t\t\t\t\t\t\tif (data && data.tweensContainer && (queueName === true || queueName === \"\")) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t$.each(data.tweensContainer, function(m, activeTween) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tactiveTween.endValue = activeTween.currentValue;\r\n\t\t\t\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tcallsToStop.push(i);\r\n\t\t\t\t\t\t\t\t\t\t} else if (propertiesMap === \"finish\" || propertiesMap === \"finishAll\") {\r\n\t\t\t\t\t\t\t\t\t\t\t/* To get active tweens to finish immediately, we forcefully shorten their durations to 1ms so that\r\n\t\t\t\t\t\t\t\t\t\t\t they finish upon the next rAf tick then proceed with normal call completion logic. */\r\n\t\t\t\t\t\t\t\t\t\t\tactiveCall[2].duration = 1;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t/* Prematurely call completeCall() on each matched active call. Pass an additional flag for \"stop\" to indicate\r\n\t\t\t\t\t that the complete callback and display:none setting should be skipped since we're completing prematurely. */\r\n\t\t\t\t\tif (propertiesMap === \"stop\") {\r\n\t\t\t\t\t\t$.each(callsToStop, function(i, j) {\r\n\t\t\t\t\t\t\tcompleteCall(j, true);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif (promiseData.promise) {\r\n\t\t\t\t\t\t\t/* Immediately resolve the promise associated with this stop call since stop runs synchronously. */\r\n\t\t\t\t\t\t\tpromiseData.resolver(elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Since we're stopping, and not proceeding with queueing, exit out of Velocity. */\r\n\t\t\t\t\treturn getChain();\r\n\r\n\t\t\t\tdefault:\r\n\t\t\t\t\t/* Treat a non-empty plain object as a literal properties map. */\r\n\t\t\t\t\tif ($.isPlainObject(propertiesMap) && !Type.isEmptyObject(propertiesMap)) {\r\n\t\t\t\t\t\taction = \"start\";\r\n\r\n\t\t\t\t\t\t/****************\r\n\t\t\t\t\t\t Redirects\r\n\t\t\t\t\t\t ****************/\r\n\r\n\t\t\t\t\t\t/* Check if a string matches a registered redirect (see Redirects above). */\r\n\t\t\t\t\t} else if (Type.isString(propertiesMap) && Velocity.Redirects[propertiesMap]) {\r\n\t\t\t\t\t\topts = $.extend({}, options);\r\n\r\n\t\t\t\t\t\tvar durationOriginal = opts.duration,\r\n\t\t\t\t\t\t\t\tdelayOriginal = opts.delay || 0;\r\n\r\n\t\t\t\t\t\t/* If the backwards option was passed in, reverse the element set so that elements animate from the last to the first. */\r\n\t\t\t\t\t\tif (opts.backwards === true) {\r\n\t\t\t\t\t\t\telements = $.extend(true, [], elements).reverse();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Individually trigger the redirect for each element in the set to prevent users from having to handle iteration logic in their redirect. */\r\n\t\t\t\t\t\t$.each(elements, function(elementIndex, element) {\r\n\t\t\t\t\t\t\t/* If the stagger option was passed in, successively delay each element by the stagger value (in ms). Retain the original delay value. */\r\n\t\t\t\t\t\t\tif (parseFloat(opts.stagger)) {\r\n\t\t\t\t\t\t\t\topts.delay = delayOriginal + (parseFloat(opts.stagger) * elementIndex);\r\n\t\t\t\t\t\t\t} else if (Type.isFunction(opts.stagger)) {\r\n\t\t\t\t\t\t\t\topts.delay = delayOriginal + opts.stagger.call(element, elementIndex, elementsLength);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If the drag option was passed in, successively increase/decrease (depending on the presense of opts.backwards)\r\n\t\t\t\t\t\t\t the duration of each element's animation, using floors to prevent producing very short durations. */\r\n\t\t\t\t\t\t\tif (opts.drag) {\r\n\t\t\t\t\t\t\t\t/* Default the duration of UI pack effects (callouts and transitions) to 1000ms instead of the usual default duration of 400ms. */\r\n\t\t\t\t\t\t\t\topts.duration = parseFloat(durationOriginal) || (/^(callout|transition)/.test(propertiesMap) ? 1000 : DURATION_DEFAULT);\r\n\r\n\t\t\t\t\t\t\t\t/* For each element, take the greater duration of: A) animation completion percentage relative to the original duration,\r\n\t\t\t\t\t\t\t\t B) 75% of the original duration, or C) a 200ms fallback (in case duration is already set to a low value).\r\n\t\t\t\t\t\t\t\t The end result is a baseline of 75% of the redirect's duration that increases/decreases as the end of the element set is approached. */\r\n\t\t\t\t\t\t\t\topts.duration = Math.max(opts.duration * (opts.backwards ? 1 - elementIndex / elementsLength : (elementIndex + 1) / elementsLength), opts.duration * 0.75, 200);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Pass in the call's opts object so that the redirect can optionally extend it. It defaults to an empty object instead of null to\r\n\t\t\t\t\t\t\t reduce the opts checking logic required inside the redirect. */\r\n\t\t\t\t\t\t\tVelocity.Redirects[propertiesMap].call(element, element, opts || {}, elementIndex, elementsLength, elements, promiseData.promise ? promiseData : undefined);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t/* Since the animation logic resides within the redirect's own code, abort the remainder of this call.\r\n\t\t\t\t\t\t (The performance overhead up to this point is virtually non-existant.) */\r\n\t\t\t\t\t\t/* Note: The jQuery call chain is kept intact by returning the complete element set. */\r\n\t\t\t\t\t\treturn getChain();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar abortError = \"Velocity: First argument (\" + propertiesMap + \") was not a property map, a known action, or a registered redirect. Aborting.\";\r\n\r\n\t\t\t\t\t\tif (promiseData.promise) {\r\n\t\t\t\t\t\t\tpromiseData.rejecter(new Error(abortError));\r\n\t\t\t\t\t\t} else if (window.console) {\r\n\t\t\t\t\t\t\tconsole.log(abortError);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\treturn getChain();\r\n\t\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/**************************\r\n\t\t\t Call-Wide Variables\r\n\t\t\t **************************/\r\n\r\n\t\t\t/* A container for CSS unit conversion ratios (e.g. %, rem, and em ==> px) that is used to cache ratios across all elements\r\n\t\t\t being animated in a single Velocity call. Calculating unit ratios necessitates DOM querying and updating, and is therefore\r\n\t\t\t avoided (via caching) wherever possible. This container is call-wide instead of page-wide to avoid the risk of using stale\r\n\t\t\t conversion metrics across Velocity animations that are not immediately consecutively chained. */\r\n\t\t\tvar callUnitConversionData = {\r\n\t\t\t\tlastParent: null,\r\n\t\t\t\tlastPosition: null,\r\n\t\t\t\tlastFontSize: null,\r\n\t\t\t\tlastPercentToPxWidth: null,\r\n\t\t\t\tlastPercentToPxHeight: null,\r\n\t\t\t\tlastEmToPx: null,\r\n\t\t\t\tremToPx: null,\r\n\t\t\t\tvwToPx: null,\r\n\t\t\t\tvhToPx: null\r\n\t\t\t};\r\n\r\n\t\t\t/* A container for all the ensuing tween data and metadata associated with this call. This container gets pushed to the page-wide\r\n\t\t\t Velocity.State.calls array that is processed during animation ticking. */\r\n\t\t\tvar call = [];\r\n\r\n\t\t\t/************************\r\n\t\t\t Element Processing\r\n\t\t\t ************************/\r\n\r\n\t\t\t/* Element processing consists of three parts -- data processing that cannot go stale and data processing that *can* go stale (i.e. third-party style modifications):\r\n\t\t\t 1) Pre-Queueing: Element-wide variables, including the element's data storage, are instantiated. Call options are prepared. If triggered, the Stop action is executed.\r\n\t\t\t 2) Queueing: The logic that runs once this call has reached its point of execution in the element's $.queue() stack. Most logic is placed here to avoid risking it becoming stale.\r\n\t\t\t 3) Pushing: Consolidation of the tween data followed by its push onto the global in-progress calls container.\r\n\t\t\t `elementArrayIndex` allows passing index of the element in the original array to value functions.\r\n\t\t\t If `elementsIndex` were used instead the index would be determined by the elements' per-element queue.\r\n\t\t\t */\r\n\t\t\tfunction processElement(element, elementArrayIndex) {\r\n\r\n\t\t\t\t/*************************\r\n\t\t\t\t Part I: Pre-Queueing\r\n\t\t\t\t *************************/\r\n\r\n\t\t\t\t/***************************\r\n\t\t\t\t Element-Wide Variables\r\n\t\t\t\t ***************************/\r\n\r\n\t\t\t\tvar /* The runtime opts object is the extension of the current call's options and Velocity's page-wide option defaults. */\r\n\t\t\t\t\t\topts = $.extend({}, Velocity.defaults, options),\r\n\t\t\t\t\t\t/* A container for the processed data associated with each property in the propertyMap.\r\n\t\t\t\t\t\t (Each property in the map produces its own \"tween\".) */\r\n\t\t\t\t\t\ttweensContainer = {},\r\n\t\t\t\t\t\telementUnitConversionData;\r\n\r\n\t\t\t\t/******************\r\n\t\t\t\t Element Init\r\n\t\t\t\t ******************/\r\n\r\n\t\t\t\tif (Data(element) === undefined) {\r\n\t\t\t\t\tVelocity.init(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/******************\r\n\t\t\t\t Option: Delay\r\n\t\t\t\t ******************/\r\n\r\n\t\t\t\t/* Since queue:false doesn't respect the item's existing queue, we avoid injecting its delay here (it's set later on). */\r\n\t\t\t\t/* Note: Velocity rolls its own delay function since jQuery doesn't have a utility alias for $.fn.delay()\r\n\t\t\t\t (and thus requires jQuery element creation, which we avoid since its overhead includes DOM querying). */\r\n\t\t\t\tif (parseFloat(opts.delay) && opts.queue !== false) {\r\n\t\t\t\t\t$.queue(element, opts.queue, function(next, clearQueue) {\r\n\t\t\t\t\t\tif (clearQueue === true) {\r\n\t\t\t\t\t\t\t/* Do not continue with animation queueing. */\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* This is a flag used to indicate to the upcoming completeCall() function that this queue entry was initiated by Velocity. See completeCall() for further details. */\r\n\t\t\t\t\t\tVelocity.velocityQueueEntryFlag = true;\r\n\r\n\t\t\t\t\t\t/* The ensuing queue item (which is assigned to the \"next\" argument that $.queue() automatically passes in) will be triggered after a setTimeout delay.\r\n\t\t\t\t\t\t The setTimeout is stored so that it can be subjected to clearTimeout() if this animation is prematurely stopped via Velocity's \"stop\" command, and\r\n\t\t\t\t\t\t delayBegin/delayTime is used to ensure we can \"pause\" and \"resume\" a tween that is still mid-delay. */\r\n\r\n\t\t\t\t\t\t/* Temporarily store delayed elements to facilite access for global pause/resume */\r\n\t\t\t\t\t\tvar callIndex = Velocity.State.delayedElements.count++;\r\n\t\t\t\t\t\tVelocity.State.delayedElements[callIndex] = element;\r\n\r\n\t\t\t\t\t\tvar delayComplete = (function(index) {\r\n\t\t\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\t\t\t/* Clear the temporary element */\r\n\t\t\t\t\t\t\t\tVelocity.State.delayedElements[index] = false;\r\n\r\n\t\t\t\t\t\t\t\t/* Finally, issue the call */\r\n\t\t\t\t\t\t\t\tnext();\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t})(callIndex);\r\n\r\n\r\n\t\t\t\t\t\tData(element).delayBegin = (new Date()).getTime();\r\n\t\t\t\t\t\tData(element).delay = parseFloat(opts.delay);\r\n\t\t\t\t\t\tData(element).delayTimer = {\r\n\t\t\t\t\t\t\tsetTimeout: setTimeout(next, parseFloat(opts.delay)),\r\n\t\t\t\t\t\t\tnext: delayComplete\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*********************\r\n\t\t\t\t Option: Duration\r\n\t\t\t\t *********************/\r\n\r\n\t\t\t\t/* Support for jQuery's named durations. */\r\n\t\t\t\tswitch (opts.duration.toString().toLowerCase()) {\r\n\t\t\t\t\tcase \"fast\":\r\n\t\t\t\t\t\topts.duration = 200;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"normal\":\r\n\t\t\t\t\t\topts.duration = DURATION_DEFAULT;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tcase \"slow\":\r\n\t\t\t\t\t\topts.duration = 600;\r\n\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t/* Remove the potential \"ms\" suffix and default to 1 if the user is attempting to set a duration of 0 (in order to produce an immediate style change). */\r\n\t\t\t\t\t\topts.duration = parseFloat(opts.duration) || 1;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/************************\r\n\t\t\t\t Global Option: Mock\r\n\t\t\t\t ************************/\r\n\r\n\t\t\t\tif (Velocity.mock !== false) {\r\n\t\t\t\t\t/* In mock mode, all animations are forced to 1ms so that they occur immediately upon the next rAF tick.\r\n\t\t\t\t\t Alternatively, a multiplier can be passed in to time remap all delays and durations. */\r\n\t\t\t\t\tif (Velocity.mock === true) {\r\n\t\t\t\t\t\topts.duration = opts.delay = 1;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\topts.duration *= parseFloat(Velocity.mock) || 1;\r\n\t\t\t\t\t\topts.delay *= parseFloat(Velocity.mock) || 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*******************\r\n\t\t\t\t Option: Easing\r\n\t\t\t\t *******************/\r\n\r\n\t\t\t\topts.easing = getEasing(opts.easing, opts.duration);\r\n\r\n\t\t\t\t/**********************\r\n\t\t\t\t Option: Callbacks\r\n\t\t\t\t **********************/\r\n\r\n\t\t\t\t/* Callbacks must functions. Otherwise, default to null. */\r\n\t\t\t\tif (opts.begin && !Type.isFunction(opts.begin)) {\r\n\t\t\t\t\topts.begin = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (opts.progress && !Type.isFunction(opts.progress)) {\r\n\t\t\t\t\topts.progress = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (opts.complete && !Type.isFunction(opts.complete)) {\r\n\t\t\t\t\topts.complete = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*********************************\r\n\t\t\t\t Option: Display & Visibility\r\n\t\t\t\t *********************************/\r\n\r\n\t\t\t\t/* Refer to Velocity's documentation (VelocityJS.org/#displayAndVisibility) for a description of the display and visibility options' behavior. */\r\n\t\t\t\t/* Note: We strictly check for undefined instead of falsiness because display accepts an empty string value. */\r\n\t\t\t\tif (opts.display !== undefined && opts.display !== null) {\r\n\t\t\t\t\topts.display = opts.display.toString().toLowerCase();\r\n\r\n\t\t\t\t\t/* Users can pass in a special \"auto\" value to instruct Velocity to set the element to its default display value. */\r\n\t\t\t\t\tif (opts.display === \"auto\") {\r\n\t\t\t\t\t\topts.display = Velocity.CSS.Values.getDisplayType(element);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (opts.visibility !== undefined && opts.visibility !== null) {\r\n\t\t\t\t\topts.visibility = opts.visibility.toString().toLowerCase();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/**********************\r\n\t\t\t\t Option: mobileHA\r\n\t\t\t\t **********************/\r\n\r\n\t\t\t\t/* When set to true, and if this is a mobile device, mobileHA automatically enables hardware acceleration (via a null transform hack)\r\n\t\t\t\t on animating elements. HA is removed from the element at the completion of its animation. */\r\n\t\t\t\t/* Note: Android Gingerbread doesn't support HA. If a null transform hack (mobileHA) is in fact set, it will prevent other tranform subproperties from taking effect. */\r\n\t\t\t\t/* Note: You can read more about the use of mobileHA in Velocity's documentation: VelocityJS.org/#mobileHA. */\r\n\t\t\t\topts.mobileHA = (opts.mobileHA && Velocity.State.isMobile && !Velocity.State.isGingerbread);\r\n\r\n\t\t\t\t/***********************\r\n\t\t\t\t Part II: Queueing\r\n\t\t\t\t ***********************/\r\n\r\n\t\t\t\t/* When a set of elements is targeted by a Velocity call, the set is broken up and each element has the current Velocity call individually queued onto it.\r\n\t\t\t\t In this way, each element's existing queue is respected; some elements may already be animating and accordingly should not have this current Velocity call triggered immediately. */\r\n\t\t\t\t/* In each queue, tween data is processed for each animating property then pushed onto the call-wide calls array. When the last element in the set has had its tweens processed,\r\n\t\t\t\t the call array is pushed to Velocity.State.calls for live processing by the requestAnimationFrame tick. */\r\n\t\t\t\tfunction buildQueue(next) {\r\n\t\t\t\t\tvar data, lastTweensContainer;\r\n\r\n\t\t\t\t\t/*******************\r\n\t\t\t\t\t Option: Begin\r\n\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\t/* The begin callback is fired once per call -- not once per elemenet -- and is passed the full raw DOM element set as both its context and its first argument. */\r\n\t\t\t\t\tif (opts.begin && elementsIndex === 0) {\r\n\t\t\t\t\t\t/* We throw callbacks in a setTimeout so that thrown errors don't halt the execution of Velocity itself. */\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\topts.begin.call(elements, elements);\r\n\t\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\t\tthrow error;\r\n\t\t\t\t\t\t\t}, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*****************************************\r\n\t\t\t\t\t Tween Data Construction (for Scroll)\r\n\t\t\t\t\t *****************************************/\r\n\r\n\t\t\t\t\t/* Note: In order to be subjected to chaining and animation options, scroll's tweening is routed through Velocity as if it were a standard CSS property animation. */\r\n\t\t\t\t\tif (action === \"scroll\") {\r\n\t\t\t\t\t\t/* The scroll action uniquely takes an optional \"offset\" option -- specified in pixels -- that offsets the targeted scroll position. */\r\n\t\t\t\t\t\tvar scrollDirection = (/^x$/i.test(opts.axis) ? \"Left\" : \"Top\"),\r\n\t\t\t\t\t\t\t\tscrollOffset = parseFloat(opts.offset) || 0,\r\n\t\t\t\t\t\t\t\tscrollPositionCurrent,\r\n\t\t\t\t\t\t\t\tscrollPositionCurrentAlternate,\r\n\t\t\t\t\t\t\t\tscrollPositionEnd;\r\n\r\n\t\t\t\t\t\t/* Scroll also uniquely takes an optional \"container\" option, which indicates the parent element that should be scrolled --\r\n\t\t\t\t\t\t as opposed to the browser window itself. This is useful for scrolling toward an element that's inside an overflowing parent element. */\r\n\t\t\t\t\t\tif (opts.container) {\r\n\t\t\t\t\t\t\t/* Ensure that either a jQuery object or a raw DOM element was passed in. */\r\n\t\t\t\t\t\t\tif (Type.isWrapped(opts.container) || Type.isNode(opts.container)) {\r\n\t\t\t\t\t\t\t\t/* Extract the raw DOM element from the jQuery wrapper. */\r\n\t\t\t\t\t\t\t\topts.container = opts.container[0] || opts.container;\r\n\t\t\t\t\t\t\t\t/* Note: Unlike other properties in Velocity, the browser's scroll position is never cached since it so frequently changes\r\n\t\t\t\t\t\t\t\t (due to the user's natural interaction with the page). */\r\n\t\t\t\t\t\t\t\tscrollPositionCurrent = opts.container[\"scroll\" + scrollDirection]; /* GET */\r\n\r\n\t\t\t\t\t\t\t\t/* $.position() values are relative to the container's currently viewable area (without taking into account the container's true dimensions\r\n\t\t\t\t\t\t\t\t -- say, for example, if the container was not overflowing). Thus, the scroll end value is the sum of the child element's position *and*\r\n\t\t\t\t\t\t\t\t the scroll container's current scroll position. */\r\n\t\t\t\t\t\t\t\tscrollPositionEnd = (scrollPositionCurrent + $(element).position()[scrollDirection.toLowerCase()]) + scrollOffset; /* GET */\r\n\t\t\t\t\t\t\t\t/* If a value other than a jQuery object or a raw DOM element was passed in, default to null so that this option is ignored. */\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\topts.container = null;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t/* If the window itself is being scrolled -- not a containing element -- perform a live scroll position lookup using\r\n\t\t\t\t\t\t\t the appropriate cached property names (which differ based on browser type). */\r\n\t\t\t\t\t\t\tscrollPositionCurrent = Velocity.State.scrollAnchor[Velocity.State[\"scrollProperty\" + scrollDirection]]; /* GET */\r\n\t\t\t\t\t\t\t/* When scrolling the browser window, cache the alternate axis's current value since window.scrollTo() doesn't let us change only one value at a time. */\r\n\t\t\t\t\t\t\tscrollPositionCurrentAlternate = Velocity.State.scrollAnchor[Velocity.State[\"scrollProperty\" + (scrollDirection === \"Left\" ? \"Top\" : \"Left\")]]; /* GET */\r\n\r\n\t\t\t\t\t\t\t/* Unlike $.position(), $.offset() values are relative to the browser window's true dimensions -- not merely its currently viewable area --\r\n\t\t\t\t\t\t\t and therefore end values do not need to be compounded onto current values. */\r\n\t\t\t\t\t\t\tscrollPositionEnd = $(element).offset()[scrollDirection.toLowerCase()] + scrollOffset; /* GET */\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Since there's only one format that scroll's associated tweensContainer can take, we create it manually. */\r\n\t\t\t\t\t\ttweensContainer = {\r\n\t\t\t\t\t\t\tscroll: {\r\n\t\t\t\t\t\t\t\trootPropertyValue: false,\r\n\t\t\t\t\t\t\t\tstartValue: scrollPositionCurrent,\r\n\t\t\t\t\t\t\t\tcurrentValue: scrollPositionCurrent,\r\n\t\t\t\t\t\t\t\tendValue: scrollPositionEnd,\r\n\t\t\t\t\t\t\t\tunitType: \"\",\r\n\t\t\t\t\t\t\t\teasing: opts.easing,\r\n\t\t\t\t\t\t\t\tscrollData: {\r\n\t\t\t\t\t\t\t\t\tcontainer: opts.container,\r\n\t\t\t\t\t\t\t\t\tdirection: scrollDirection,\r\n\t\t\t\t\t\t\t\t\talternateValue: scrollPositionCurrentAlternate\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\telement: element\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\tconsole.log(\"tweensContainer (scroll): \", tweensContainer.scroll, element);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/******************************************\r\n\t\t\t\t\t\t Tween Data Construction (for Reverse)\r\n\t\t\t\t\t\t ******************************************/\r\n\r\n\t\t\t\t\t\t/* Reverse acts like a \"start\" action in that a property map is animated toward. The only difference is\r\n\t\t\t\t\t\t that the property map used for reverse is the inverse of the map used in the previous call. Thus, we manipulate\r\n\t\t\t\t\t\t the previous call to construct our new map: use the previous map's end values as our new map's start values. Copy over all other data. */\r\n\t\t\t\t\t\t/* Note: Reverse can be directly called via the \"reverse\" parameter, or it can be indirectly triggered via the loop option. (Loops are composed of multiple reverses.) */\r\n\t\t\t\t\t\t/* Note: Reverse calls do not need to be consecutively chained onto a currently-animating element in order to operate on cached values;\r\n\t\t\t\t\t\t there is no harm to reverse being called on a potentially stale data cache since reverse's behavior is simply defined\r\n\t\t\t\t\t\t as reverting to the element's values as they were prior to the previous *Velocity* call. */\r\n\t\t\t\t\t} else if (action === \"reverse\") {\r\n\t\t\t\t\t\tdata = Data(element);\r\n\r\n\t\t\t\t\t\t/* Abort if there is no prior animation data to reverse to. */\r\n\t\t\t\t\t\tif (!data) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (!data.tweensContainer) {\r\n\t\t\t\t\t\t\t/* Dequeue the element so that this queue entry releases itself immediately, allowing subsequent queue entries to run. */\r\n\t\t\t\t\t\t\t$.dequeue(element, opts.queue);\r\n\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t/*********************\r\n\t\t\t\t\t\t\t Options Parsing\r\n\t\t\t\t\t\t\t *********************/\r\n\r\n\t\t\t\t\t\t\t/* If the element was hidden via the display option in the previous call,\r\n\t\t\t\t\t\t\t revert display to \"auto\" prior to reversal so that the element is visible again. */\r\n\t\t\t\t\t\t\tif (data.opts.display === \"none\") {\r\n\t\t\t\t\t\t\t\tdata.opts.display = \"auto\";\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (data.opts.visibility === \"hidden\") {\r\n\t\t\t\t\t\t\t\tdata.opts.visibility = \"visible\";\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If the loop option was set in the previous call, disable it so that \"reverse\" calls aren't recursively generated.\r\n\t\t\t\t\t\t\t Further, remove the previous call's callback options; typically, users do not want these to be refired. */\r\n\t\t\t\t\t\t\tdata.opts.loop = false;\r\n\t\t\t\t\t\t\tdata.opts.begin = null;\r\n\t\t\t\t\t\t\tdata.opts.complete = null;\r\n\r\n\t\t\t\t\t\t\t/* Since we're extending an opts object that has already been extended with the defaults options object,\r\n\t\t\t\t\t\t\t we remove non-explicitly-defined properties that are auto-assigned values. */\r\n\t\t\t\t\t\t\tif (!options.easing) {\r\n\t\t\t\t\t\t\t\tdelete opts.easing;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!options.duration) {\r\n\t\t\t\t\t\t\t\tdelete opts.duration;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* The opts object used for reversal is an extension of the options object optionally passed into this\r\n\t\t\t\t\t\t\t reverse call plus the options used in the previous Velocity call. */\r\n\t\t\t\t\t\t\topts = $.extend({}, data.opts, opts);\r\n\r\n\t\t\t\t\t\t\t/*************************************\r\n\t\t\t\t\t\t\t Tweens Container Reconstruction\r\n\t\t\t\t\t\t\t *************************************/\r\n\r\n\t\t\t\t\t\t\t/* Create a deepy copy (indicated via the true flag) of the previous call's tweensContainer. */\r\n\t\t\t\t\t\t\tlastTweensContainer = $.extend(true, {}, data ? data.tweensContainer : null);\r\n\r\n\t\t\t\t\t\t\t/* Manipulate the previous tweensContainer by replacing its end values and currentValues with its start values. */\r\n\t\t\t\t\t\t\tfor (var lastTween in lastTweensContainer) {\r\n\t\t\t\t\t\t\t\t/* In addition to tween data, tweensContainers contain an element property that we ignore here. */\r\n\t\t\t\t\t\t\t\tif (lastTweensContainer.hasOwnProperty(lastTween) && lastTween !== \"element\") {\r\n\t\t\t\t\t\t\t\t\tvar lastStartValue = lastTweensContainer[lastTween].startValue;\r\n\r\n\t\t\t\t\t\t\t\t\tlastTweensContainer[lastTween].startValue = lastTweensContainer[lastTween].currentValue = lastTweensContainer[lastTween].endValue;\r\n\t\t\t\t\t\t\t\t\tlastTweensContainer[lastTween].endValue = lastStartValue;\r\n\r\n\t\t\t\t\t\t\t\t\t/* Easing is the only option that embeds into the individual tween data (since it can be defined on a per-property basis).\r\n\t\t\t\t\t\t\t\t\t Accordingly, every property's easing value must be updated when an options object is passed in with a reverse call.\r\n\t\t\t\t\t\t\t\t\t The side effect of this extensibility is that all per-property easing values are forcefully reset to the new value. */\r\n\t\t\t\t\t\t\t\t\tif (!Type.isEmptyObject(options)) {\r\n\t\t\t\t\t\t\t\t\t\tlastTweensContainer[lastTween].easing = opts.easing;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\t\tconsole.log(\"reverse tweensContainer (\" + lastTween + \"): \" + JSON.stringify(lastTweensContainer[lastTween]), element);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\ttweensContainer = lastTweensContainer;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/*****************************************\r\n\t\t\t\t\t\t Tween Data Construction (for Start)\r\n\t\t\t\t\t\t *****************************************/\r\n\r\n\t\t\t\t\t} else if (action === \"start\") {\r\n\r\n\t\t\t\t\t\t/*************************\r\n\t\t\t\t\t\t Value Transferring\r\n\t\t\t\t\t\t *************************/\r\n\r\n\t\t\t\t\t\t/* If this queue entry follows a previous Velocity-initiated queue entry *and* if this entry was created\r\n\t\t\t\t\t\t while the element was in the process of being animated by Velocity, then this current call is safe to use\r\n\t\t\t\t\t\t the end values from the prior call as its start values. Velocity attempts to perform this value transfer\r\n\t\t\t\t\t\t process whenever possible in order to avoid requerying the DOM. */\r\n\t\t\t\t\t\t/* If values aren't transferred from a prior call and start values were not forcefed by the user (more on this below),\r\n\t\t\t\t\t\t then the DOM is queried for the element's current values as a last resort. */\r\n\t\t\t\t\t\t/* Note: Conversely, animation reversal (and looping) *always* perform inter-call value transfers; they never requery the DOM. */\r\n\r\n\t\t\t\t\t\tdata = Data(element);\r\n\r\n\t\t\t\t\t\t/* The per-element isAnimating flag is used to indicate whether it's safe (i.e. the data isn't stale)\r\n\t\t\t\t\t\t to transfer over end values to use as start values. If it's set to true and there is a previous\r\n\t\t\t\t\t\t Velocity call to pull values from, do so. */\r\n\t\t\t\t\t\tif (data && data.tweensContainer && data.isAnimating === true) {\r\n\t\t\t\t\t\t\tlastTweensContainer = data.tweensContainer;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/***************************\r\n\t\t\t\t\t\t Tween Data Calculation\r\n\t\t\t\t\t\t ***************************/\r\n\r\n\t\t\t\t\t\t/* This function parses property data and defaults endValue, easing, and startValue as appropriate. */\r\n\t\t\t\t\t\t/* Property map values can either take the form of 1) a single value representing the end value,\r\n\t\t\t\t\t\t or 2) an array in the form of [ endValue, [, easing] [, startValue] ].\r\n\t\t\t\t\t\t The optional third parameter is a forcefed startValue to be used instead of querying the DOM for\r\n\t\t\t\t\t\t the element's current value. Read Velocity's docmentation to learn more about forcefeeding: VelocityJS.org/#forcefeeding */\r\n\t\t\t\t\t\tvar parsePropertyValue = function(valueData, skipResolvingEasing) {\r\n\t\t\t\t\t\t\tvar endValue, easing, startValue;\r\n\r\n\t\t\t\t\t\t\t/* If we have a function as the main argument then resolve it first, in case it returns an array that needs to be split */\r\n\t\t\t\t\t\t\tif (Type.isFunction(valueData)) {\r\n\t\t\t\t\t\t\t\tvalueData = valueData.call(element, elementArrayIndex, elementsLength);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Handle the array format, which can be structured as one of three potential overloads:\r\n\t\t\t\t\t\t\t A) [ endValue, easing, startValue ], B) [ endValue, easing ], or C) [ endValue, startValue ] */\r\n\t\t\t\t\t\t\tif (Type.isArray(valueData)) {\r\n\t\t\t\t\t\t\t\t/* endValue is always the first item in the array. Don't bother validating endValue's value now\r\n\t\t\t\t\t\t\t\t since the ensuing property cycling logic does that. */\r\n\t\t\t\t\t\t\t\tendValue = valueData[0];\r\n\r\n\t\t\t\t\t\t\t\t/* Two-item array format: If the second item is a number, function, or hex string, treat it as a\r\n\t\t\t\t\t\t\t\t start value since easings can only be non-hex strings or arrays. */\r\n\t\t\t\t\t\t\t\tif ((!Type.isArray(valueData[1]) && /^[\\d-]/.test(valueData[1])) || Type.isFunction(valueData[1]) || CSS.RegEx.isHex.test(valueData[1])) {\r\n\t\t\t\t\t\t\t\t\tstartValue = valueData[1];\r\n\t\t\t\t\t\t\t\t\t/* Two or three-item array: If the second item is a non-hex string easing name or an array, treat it as an easing. */\r\n\t\t\t\t\t\t\t\t} else if ((Type.isString(valueData[1]) && !CSS.RegEx.isHex.test(valueData[1]) && Velocity.Easings[valueData[1]]) || Type.isArray(valueData[1])) {\r\n\t\t\t\t\t\t\t\t\teasing = skipResolvingEasing ? valueData[1] : getEasing(valueData[1], opts.duration);\r\n\r\n\t\t\t\t\t\t\t\t\t/* Don't bother validating startValue's value now since the ensuing property cycling logic inherently does that. */\r\n\t\t\t\t\t\t\t\t\tstartValue = valueData[2];\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tstartValue = valueData[1] || valueData[2];\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/* Handle the single-value format. */\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tendValue = valueData;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Default to the call's easing if a per-property easing type was not defined. */\r\n\t\t\t\t\t\t\tif (!skipResolvingEasing) {\r\n\t\t\t\t\t\t\t\teasing = easing || opts.easing;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If functions were passed in as values, pass the function the current element as its context,\r\n\t\t\t\t\t\t\t plus the element's index and the element set's size as arguments. Then, assign the returned value. */\r\n\t\t\t\t\t\t\tif (Type.isFunction(endValue)) {\r\n\t\t\t\t\t\t\t\tendValue = endValue.call(element, elementArrayIndex, elementsLength);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (Type.isFunction(startValue)) {\r\n\t\t\t\t\t\t\t\tstartValue = startValue.call(element, elementArrayIndex, elementsLength);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Allow startValue to be left as undefined to indicate to the ensuing code that its value was not forcefed. */\r\n\t\t\t\t\t\t\treturn [endValue || 0, easing, startValue];\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\tvar fixPropertyValue = function(property, valueData) {\r\n\t\t\t\t\t\t\t/* In case this property is a hook, there are circumstances where we will intend to work on the hook's root property and not the hooked subproperty. */\r\n\t\t\t\t\t\t\tvar rootProperty = CSS.Hooks.getRoot(property),\r\n\t\t\t\t\t\t\t\t\trootPropertyValue = false,\r\n\t\t\t\t\t\t\t\t\t/* Parse out endValue, easing, and startValue from the property's data. */\r\n\t\t\t\t\t\t\t\t\tendValue = valueData[0],\r\n\t\t\t\t\t\t\t\t\teasing = valueData[1],\r\n\t\t\t\t\t\t\t\t\tstartValue = valueData[2],\r\n\t\t\t\t\t\t\t\t\tpattern;\r\n\r\n\t\t\t\t\t\t\t/**************************\r\n\t\t\t\t\t\t\t Start Value Sourcing\r\n\t\t\t\t\t\t\t **************************/\r\n\r\n\t\t\t\t\t\t\t/* Other than for the dummy tween property, properties that are not supported by the browser (and do not have an associated normalization) will\r\n\t\t\t\t\t\t\t inherently produce no style changes when set, so they are skipped in order to decrease animation tick overhead.\r\n\t\t\t\t\t\t\t Property support is determined via prefixCheck(), which returns a false flag when no supported is detected. */\r\n\t\t\t\t\t\t\t/* Note: Since SVG elements have some of their properties directly applied as HTML attributes,\r\n\t\t\t\t\t\t\t there is no way to check for their explicit browser support, and so we skip skip this check for them. */\r\n\t\t\t\t\t\t\tif ((!data || !data.isSVG) && rootProperty !== \"tween\" && CSS.Names.prefixCheck(rootProperty)[1] === false && CSS.Normalizations.registered[rootProperty] === undefined) {\r\n\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\tconsole.log(\"Skipping [\" + rootProperty + \"] due to a lack of browser support.\");\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If the display option is being set to a non-\"none\" (e.g. \"block\") and opacity (filter on IE<=8) is being\r\n\t\t\t\t\t\t\t animated to an endValue of non-zero, the user's intention is to fade in from invisible, thus we forcefeed opacity\r\n\t\t\t\t\t\t\t a startValue of 0 if its startValue hasn't already been sourced by value transferring or prior forcefeeding. */\r\n\t\t\t\t\t\t\tif (((opts.display !== undefined && opts.display !== null && opts.display !== \"none\") || (opts.visibility !== undefined && opts.visibility !== \"hidden\")) && /opacity|filter/.test(property) && !startValue && endValue !== 0) {\r\n\t\t\t\t\t\t\t\tstartValue = 0;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* If values have been transferred from the previous Velocity call, extract the endValue and rootPropertyValue\r\n\t\t\t\t\t\t\t for all of the current call's properties that were *also* animated in the previous call. */\r\n\t\t\t\t\t\t\t/* Note: Value transferring can optionally be disabled by the user via the _cacheValues option. */\r\n\t\t\t\t\t\t\tif (opts._cacheValues && lastTweensContainer && lastTweensContainer[property]) {\r\n\t\t\t\t\t\t\t\tif (startValue === undefined) {\r\n\t\t\t\t\t\t\t\t\tstartValue = lastTweensContainer[property].endValue + lastTweensContainer[property].unitType;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* The previous call's rootPropertyValue is extracted from the element's data cache since that's the\r\n\t\t\t\t\t\t\t\t instance of rootPropertyValue that gets freshly updated by the tweening process, whereas the rootPropertyValue\r\n\t\t\t\t\t\t\t\t attached to the incoming lastTweensContainer is equal to the root property's value prior to any tweening. */\r\n\t\t\t\t\t\t\t\trootPropertyValue = data.rootPropertyValueCache[rootProperty];\r\n\t\t\t\t\t\t\t\t/* If values were not transferred from a previous Velocity call, query the DOM as needed. */\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t/* Handle hooked properties. */\r\n\t\t\t\t\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\t\t\t\t\tif (startValue === undefined) {\r\n\t\t\t\t\t\t\t\t\t\trootPropertyValue = CSS.getPropertyValue(element, rootProperty); /* GET */\r\n\t\t\t\t\t\t\t\t\t\t/* Note: The following getPropertyValue() call does not actually trigger a DOM query;\r\n\t\t\t\t\t\t\t\t\t\t getPropertyValue() will extract the hook from rootPropertyValue. */\r\n\t\t\t\t\t\t\t\t\t\tstartValue = CSS.getPropertyValue(element, property, rootPropertyValue);\r\n\t\t\t\t\t\t\t\t\t\t/* If startValue is already defined via forcefeeding, do not query the DOM for the root property's value;\r\n\t\t\t\t\t\t\t\t\t\t just grab rootProperty's zero-value template from CSS.Hooks. This overwrites the element's actual\r\n\t\t\t\t\t\t\t\t\t\t root property value (if one is set), but this is acceptable since the primary reason users forcefeed is\r\n\t\t\t\t\t\t\t\t\t\t to avoid DOM queries, and thus we likewise avoid querying the DOM for the root property's value. */\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t/* Grab this hook's zero-value template, e.g. \"0px 0px 0px black\". */\r\n\t\t\t\t\t\t\t\t\t\trootPropertyValue = CSS.Hooks.templates[rootProperty][1];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/* Handle non-hooked properties that haven't already been defined via forcefeeding. */\r\n\t\t\t\t\t\t\t\t} else if (startValue === undefined) {\r\n\t\t\t\t\t\t\t\t\tstartValue = CSS.getPropertyValue(element, property); /* GET */\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**************************\r\n\t\t\t\t\t\t\t Value Data Extraction\r\n\t\t\t\t\t\t\t **************************/\r\n\r\n\t\t\t\t\t\t\tvar separatedValue,\r\n\t\t\t\t\t\t\t\t\tendValueUnitType,\r\n\t\t\t\t\t\t\t\t\tstartValueUnitType,\r\n\t\t\t\t\t\t\t\t\toperator = false;\r\n\r\n\t\t\t\t\t\t\t/* Separates a property value into its numeric value and its unit type. */\r\n\t\t\t\t\t\t\tvar separateValue = function(property, value) {\r\n\t\t\t\t\t\t\t\tvar unitType,\r\n\t\t\t\t\t\t\t\t\t\tnumericValue;\r\n\r\n\t\t\t\t\t\t\t\tnumericValue = (value || \"0\")\r\n\t\t\t\t\t\t\t\t\t\t.toString()\r\n\t\t\t\t\t\t\t\t\t\t.toLowerCase()\r\n\t\t\t\t\t\t\t\t\t\t/* Match the unit type at the end of the value. */\r\n\t\t\t\t\t\t\t\t\t\t.replace(/[%A-z]+$/, function(match) {\r\n\t\t\t\t\t\t\t\t\t\t\t/* Grab the unit type. */\r\n\t\t\t\t\t\t\t\t\t\t\tunitType = match;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t/* Strip the unit type off of value. */\r\n\t\t\t\t\t\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t/* If no unit type was supplied, assign one that is appropriate for this property (e.g. \"deg\" for rotateZ or \"px\" for width). */\r\n\t\t\t\t\t\t\t\tif (!unitType) {\r\n\t\t\t\t\t\t\t\t\tunitType = CSS.Values.getUnitType(property);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\treturn [numericValue, unitType];\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\tif (startValue !== endValue && Type.isString(startValue) && Type.isString(endValue)) {\r\n\t\t\t\t\t\t\t\tpattern = \"\";\r\n\t\t\t\t\t\t\t\tvar iStart = 0, // index in startValue\r\n\t\t\t\t\t\t\t\t\t\tiEnd = 0, // index in endValue\r\n\t\t\t\t\t\t\t\t\t\taStart = [], // array of startValue numbers\r\n\t\t\t\t\t\t\t\t\t\taEnd = [], // array of endValue numbers\r\n\t\t\t\t\t\t\t\t\t\tinCalc = 0, // Keep track of being inside a \"calc()\" so we don't duplicate it\r\n\t\t\t\t\t\t\t\t\t\tinRGB = 0, // Keep track of being inside an RGB as we can't use fractional values\r\n\t\t\t\t\t\t\t\t\t\tinRGBA = 0; // Keep track of being inside an RGBA as we must pass fractional for the alpha channel\r\n\r\n\t\t\t\t\t\t\t\tstartValue = CSS.Hooks.fixColors(startValue);\r\n\t\t\t\t\t\t\t\tendValue = CSS.Hooks.fixColors(endValue);\r\n\t\t\t\t\t\t\t\twhile (iStart < startValue.length && iEnd < endValue.length) {\r\n\t\t\t\t\t\t\t\t\tvar cStart = startValue[iStart],\r\n\t\t\t\t\t\t\t\t\t\t\tcEnd = endValue[iEnd];\r\n\r\n\t\t\t\t\t\t\t\t\tif (/[\\d\\.-]/.test(cStart) && /[\\d\\.-]/.test(cEnd)) {\r\n\t\t\t\t\t\t\t\t\t\tvar tStart = cStart, // temporary character buffer\r\n\t\t\t\t\t\t\t\t\t\t\t\ttEnd = cEnd, // temporary character buffer\r\n\t\t\t\t\t\t\t\t\t\t\t\tdotStart = \".\", // Make sure we can only ever match a single dot in a decimal\r\n\t\t\t\t\t\t\t\t\t\t\t\tdotEnd = \".\"; // Make sure we can only ever match a single dot in a decimal\r\n\r\n\t\t\t\t\t\t\t\t\t\twhile (++iStart < startValue.length) {\r\n\t\t\t\t\t\t\t\t\t\t\tcStart = startValue[iStart];\r\n\t\t\t\t\t\t\t\t\t\t\tif (cStart === dotStart) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tdotStart = \"..\"; // Can never match two characters\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (!/\\d/.test(cStart)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\ttStart += cStart;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\twhile (++iEnd < endValue.length) {\r\n\t\t\t\t\t\t\t\t\t\t\tcEnd = endValue[iEnd];\r\n\t\t\t\t\t\t\t\t\t\t\tif (cEnd === dotEnd) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tdotEnd = \"..\"; // Can never match two characters\r\n\t\t\t\t\t\t\t\t\t\t\t} else if (!/\\d/.test(cEnd)) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\ttEnd += cEnd;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tvar uStart = CSS.Hooks.getUnit(startValue, iStart), // temporary unit type\r\n\t\t\t\t\t\t\t\t\t\t\t\tuEnd = CSS.Hooks.getUnit(endValue, iEnd); // temporary unit type\r\n\r\n\t\t\t\t\t\t\t\t\t\tiStart += uStart.length;\r\n\t\t\t\t\t\t\t\t\t\tiEnd += uEnd.length;\r\n\t\t\t\t\t\t\t\t\t\tif (uStart === uEnd) {\r\n\t\t\t\t\t\t\t\t\t\t\t// Same units\r\n\t\t\t\t\t\t\t\t\t\t\tif (tStart === tEnd) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Same numbers, so just copy over\r\n\t\t\t\t\t\t\t\t\t\t\t\tpattern += tStart + uStart;\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Different numbers, so store them\r\n\t\t\t\t\t\t\t\t\t\t\t\tpattern += \"{\" + aStart.length + (inRGB ? \"!\" : \"\") + \"}\" + uStart;\r\n\t\t\t\t\t\t\t\t\t\t\t\taStart.push(parseFloat(tStart));\r\n\t\t\t\t\t\t\t\t\t\t\t\taEnd.push(parseFloat(tEnd));\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t// Different units, so put into a \"calc(from + to)\" and animate each side to/from zero\r\n\t\t\t\t\t\t\t\t\t\t\tvar nStart = parseFloat(tStart),\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnEnd = parseFloat(tEnd);\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tpattern += (inCalc < 5 ? \"calc\" : \"\") + \"(\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t+ (nStart ? \"{\" + aStart.length + (inRGB ? \"!\" : \"\") + \"}\" : \"0\") + uStart\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t+ \" + \"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t+ (nEnd ? \"{\" + (aStart.length + (nStart ? 1 : 0)) + (inRGB ? \"!\" : \"\") + \"}\" : \"0\") + uEnd\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t+ \")\";\r\n\t\t\t\t\t\t\t\t\t\t\tif (nStart) {\r\n\t\t\t\t\t\t\t\t\t\t\t\taStart.push(nStart);\r\n\t\t\t\t\t\t\t\t\t\t\t\taEnd.push(0);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tif (nEnd) {\r\n\t\t\t\t\t\t\t\t\t\t\t\taStart.push(0);\r\n\t\t\t\t\t\t\t\t\t\t\t\taEnd.push(nEnd);\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} else if (cStart === cEnd) {\r\n\t\t\t\t\t\t\t\t\t\tpattern += cStart;\r\n\t\t\t\t\t\t\t\t\t\tiStart++;\r\n\t\t\t\t\t\t\t\t\t\tiEnd++;\r\n\t\t\t\t\t\t\t\t\t\t// Keep track of being inside a calc()\r\n\t\t\t\t\t\t\t\t\t\tif (inCalc === 0 && cStart === \"c\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc === 1 && cStart === \"a\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc === 2 && cStart === \"l\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc === 3 && cStart === \"c\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc >= 4 && cStart === \"(\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\tinCalc++;\r\n\t\t\t\t\t\t\t\t\t\t} else if ((inCalc && inCalc < 5)\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inCalc >= 4 && cStart === \")\" && --inCalc < 5) {\r\n\t\t\t\t\t\t\t\t\t\t\tinCalc = 0;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t// Keep track of being inside an rgb() / rgba()\r\n\t\t\t\t\t\t\t\t\t\tif (inRGB === 0 && cStart === \"r\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB === 1 && cStart === \"g\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB === 2 && cStart === \"b\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB === 3 && cStart === \"a\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB >= 3 && cStart === \"(\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\t\t\tif (inRGB === 3 && cStart === \"a\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\tinRGBA = 1;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\tinRGB++;\r\n\t\t\t\t\t\t\t\t\t\t} else if (inRGBA && cStart === \",\") {\r\n\t\t\t\t\t\t\t\t\t\t\tif (++inRGBA > 3) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tinRGB = inRGBA = 0;\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t} else if ((inRGBA && inRGB < (inRGBA ? 5 : 4))\r\n\t\t\t\t\t\t\t\t\t\t\t\t|| inRGB >= (inRGBA ? 4 : 3) && cStart === \")\" && --inRGB < (inRGBA ? 5 : 4)) {\r\n\t\t\t\t\t\t\t\t\t\t\tinRGB = inRGBA = 0;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tinCalc = 0;\r\n\t\t\t\t\t\t\t\t\t\t// TODO: changing units, fixing colours\r\n\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (iStart !== startValue.length || iEnd !== endValue.length) {\r\n\t\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\t\tconsole.error(\"Trying to pattern match mis-matched strings [\\\"\" + endValue + \"\\\", \\\"\" + startValue + \"\\\"]\");\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tpattern = undefined;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (pattern) {\r\n\t\t\t\t\t\t\t\t\tif (aStart.length) {\r\n\t\t\t\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\t\t\t\tconsole.log(\"Pattern found \\\"\" + pattern + \"\\\" -> \", aStart, aEnd, \"[\" + startValue + \",\" + endValue + \"]\");\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\tstartValue = aStart;\r\n\t\t\t\t\t\t\t\t\t\tendValue = aEnd;\r\n\t\t\t\t\t\t\t\t\t\tendValueUnitType = startValueUnitType = \"\";\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\tpattern = undefined;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!pattern) {\r\n\t\t\t\t\t\t\t\t/* Separate startValue. */\r\n\t\t\t\t\t\t\t\tseparatedValue = separateValue(property, startValue);\r\n\t\t\t\t\t\t\t\tstartValue = separatedValue[0];\r\n\t\t\t\t\t\t\t\tstartValueUnitType = separatedValue[1];\r\n\r\n\t\t\t\t\t\t\t\t/* Separate endValue, and extract a value operator (e.g. \"+=\", \"-=\") if one exists. */\r\n\t\t\t\t\t\t\t\tseparatedValue = separateValue(property, endValue);\r\n\t\t\t\t\t\t\t\tendValue = separatedValue[0].replace(/^([+-\\/*])=/, function(match, subMatch) {\r\n\t\t\t\t\t\t\t\t\toperator = subMatch;\r\n\r\n\t\t\t\t\t\t\t\t\t/* Strip the operator off of the value. */\r\n\t\t\t\t\t\t\t\t\treturn \"\";\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tendValueUnitType = separatedValue[1];\r\n\r\n\t\t\t\t\t\t\t\t/* Parse float values from endValue and startValue. Default to 0 if NaN is returned. */\r\n\t\t\t\t\t\t\t\tstartValue = parseFloat(startValue) || 0;\r\n\t\t\t\t\t\t\t\tendValue = parseFloat(endValue) || 0;\r\n\r\n\t\t\t\t\t\t\t\t/***************************************\r\n\t\t\t\t\t\t\t\t Property-Specific Value Conversion\r\n\t\t\t\t\t\t\t\t ***************************************/\r\n\r\n\t\t\t\t\t\t\t\t/* Custom support for properties that don't actually accept the % unit type, but where pollyfilling is trivial and relatively foolproof. */\r\n\t\t\t\t\t\t\t\tif (endValueUnitType === \"%\") {\r\n\t\t\t\t\t\t\t\t\t/* A %-value fontSize/lineHeight is relative to the parent's fontSize (as opposed to the parent's dimensions),\r\n\t\t\t\t\t\t\t\t\t which is identical to the em unit's behavior, so we piggyback off of that. */\r\n\t\t\t\t\t\t\t\t\tif (/^(fontSize|lineHeight)$/.test(property)) {\r\n\t\t\t\t\t\t\t\t\t\t/* Convert % into an em decimal value. */\r\n\t\t\t\t\t\t\t\t\t\tendValue = endValue / 100;\r\n\t\t\t\t\t\t\t\t\t\tendValueUnitType = \"em\";\r\n\t\t\t\t\t\t\t\t\t\t/* For scaleX and scaleY, convert the value into its decimal format and strip off the unit type. */\r\n\t\t\t\t\t\t\t\t\t} else if (/^scale/.test(property)) {\r\n\t\t\t\t\t\t\t\t\t\tendValue = endValue / 100;\r\n\t\t\t\t\t\t\t\t\t\tendValueUnitType = \"\";\r\n\t\t\t\t\t\t\t\t\t\t/* For RGB components, take the defined percentage of 255 and strip off the unit type. */\r\n\t\t\t\t\t\t\t\t\t} else if (/(Red|Green|Blue)$/i.test(property)) {\r\n\t\t\t\t\t\t\t\t\t\tendValue = (endValue / 100) * 255;\r\n\t\t\t\t\t\t\t\t\t\tendValueUnitType = \"\";\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/***************************\r\n\t\t\t\t\t\t\t Unit Ratio Calculation\r\n\t\t\t\t\t\t\t ***************************/\r\n\r\n\t\t\t\t\t\t\t/* When queried, the browser returns (most) CSS property values in pixels. Therefore, if an endValue with a unit type of\r\n\t\t\t\t\t\t\t %, em, or rem is animated toward, startValue must be converted from pixels into the same unit type as endValue in order\r\n\t\t\t\t\t\t\t for value manipulation logic (increment/decrement) to proceed. Further, if the startValue was forcefed or transferred\r\n\t\t\t\t\t\t\t from a previous call, startValue may also not be in pixels. Unit conversion logic therefore consists of two steps:\r\n\t\t\t\t\t\t\t 1) Calculating the ratio of %/em/rem/vh/vw relative to pixels\r\n\t\t\t\t\t\t\t 2) Converting startValue into the same unit of measurement as endValue based on these ratios. */\r\n\t\t\t\t\t\t\t/* Unit conversion ratios are calculated by inserting a sibling node next to the target node, copying over its position property,\r\n\t\t\t\t\t\t\t setting values with the target unit type then comparing the returned pixel value. */\r\n\t\t\t\t\t\t\t/* Note: Even if only one of these unit types is being animated, all unit ratios are calculated at once since the overhead\r\n\t\t\t\t\t\t\t of batching the SETs and GETs together upfront outweights the potential overhead\r\n\t\t\t\t\t\t\t of layout thrashing caused by re-querying for uncalculated ratios for subsequently-processed properties. */\r\n\t\t\t\t\t\t\t/* Todo: Shift this logic into the calls' first tick instance so that it's synced with RAF. */\r\n\t\t\t\t\t\t\tvar calculateUnitRatios = function() {\r\n\r\n\t\t\t\t\t\t\t\t/************************\r\n\t\t\t\t\t\t\t\t Same Ratio Checks\r\n\t\t\t\t\t\t\t\t ************************/\r\n\r\n\t\t\t\t\t\t\t\t/* The properties below are used to determine whether the element differs sufficiently from this call's\r\n\t\t\t\t\t\t\t\t previously iterated element to also differ in its unit conversion ratios. If the properties match up with those\r\n\t\t\t\t\t\t\t\t of the prior element, the prior element's conversion ratios are used. Like most optimizations in Velocity,\r\n\t\t\t\t\t\t\t\t this is done to minimize DOM querying. */\r\n\t\t\t\t\t\t\t\tvar sameRatioIndicators = {\r\n\t\t\t\t\t\t\t\t\tmyParent: element.parentNode || document.body, /* GET */\r\n\t\t\t\t\t\t\t\t\tposition: CSS.getPropertyValue(element, \"position\"), /* GET */\r\n\t\t\t\t\t\t\t\t\tfontSize: CSS.getPropertyValue(element, \"fontSize\") /* GET */\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t/* Determine if the same % ratio can be used. % is based on the element's position value and its parent's width and height dimensions. */\r\n\t\t\t\t\t\t\t\t\t\tsamePercentRatio = ((sameRatioIndicators.position === callUnitConversionData.lastPosition) && (sameRatioIndicators.myParent === callUnitConversionData.lastParent)),\r\n\t\t\t\t\t\t\t\t\t\t/* Determine if the same em ratio can be used. em is relative to the element's fontSize. */\r\n\t\t\t\t\t\t\t\t\t\tsameEmRatio = (sameRatioIndicators.fontSize === callUnitConversionData.lastFontSize);\r\n\r\n\t\t\t\t\t\t\t\t/* Store these ratio indicators call-wide for the next element to compare against. */\r\n\t\t\t\t\t\t\t\tcallUnitConversionData.lastParent = sameRatioIndicators.myParent;\r\n\t\t\t\t\t\t\t\tcallUnitConversionData.lastPosition = sameRatioIndicators.position;\r\n\t\t\t\t\t\t\t\tcallUnitConversionData.lastFontSize = sameRatioIndicators.fontSize;\r\n\r\n\t\t\t\t\t\t\t\t/***************************\r\n\t\t\t\t\t\t\t\t Element-Specific Units\r\n\t\t\t\t\t\t\t\t ***************************/\r\n\r\n\t\t\t\t\t\t\t\t/* Note: IE8 rounds to the nearest pixel when returning CSS values, thus we perform conversions using a measurement\r\n\t\t\t\t\t\t\t\t of 100 (instead of 1) to give our ratios a precision of at least 2 decimal values. */\r\n\t\t\t\t\t\t\t\tvar measurement = 100,\r\n\t\t\t\t\t\t\t\t\t\tunitRatios = {};\r\n\r\n\t\t\t\t\t\t\t\tif (!sameEmRatio || !samePercentRatio) {\r\n\t\t\t\t\t\t\t\t\tvar dummy = data && data.isSVG ? document.createElementNS(\"http://www.w3.org/2000/svg\", \"rect\") : document.createElement(\"div\");\r\n\r\n\t\t\t\t\t\t\t\t\tVelocity.init(dummy);\r\n\t\t\t\t\t\t\t\t\tsameRatioIndicators.myParent.appendChild(dummy);\r\n\r\n\t\t\t\t\t\t\t\t\t/* To accurately and consistently calculate conversion ratios, the element's cascaded overflow and box-sizing are stripped.\r\n\t\t\t\t\t\t\t\t\t Similarly, since width/height can be artificially constrained by their min-/max- equivalents, these are controlled for as well. */\r\n\t\t\t\t\t\t\t\t\t/* Note: Overflow must be also be controlled for per-axis since the overflow property overwrites its per-axis values. */\r\n\t\t\t\t\t\t\t\t\t$.each([\"overflow\", \"overflowX\", \"overflowY\"], function(i, property) {\r\n\t\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, property, \"hidden\");\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, \"position\", sameRatioIndicators.position);\r\n\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, \"fontSize\", sameRatioIndicators.fontSize);\r\n\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, \"boxSizing\", \"content-box\");\r\n\r\n\t\t\t\t\t\t\t\t\t/* width and height act as our proxy properties for measuring the horizontal and vertical % ratios. */\r\n\t\t\t\t\t\t\t\t\t$.each([\"minWidth\", \"maxWidth\", \"width\", \"minHeight\", \"maxHeight\", \"height\"], function(i, property) {\r\n\t\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, property, measurement + \"%\");\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t\t/* paddingLeft arbitrarily acts as our proxy property for the em ratio. */\r\n\t\t\t\t\t\t\t\t\tVelocity.CSS.setPropertyValue(dummy, \"paddingLeft\", measurement + \"em\");\r\n\r\n\t\t\t\t\t\t\t\t\t/* Divide the returned value by the measurement to get the ratio between 1% and 1px. Default to 1 since working with 0 can produce Infinite. */\r\n\t\t\t\t\t\t\t\t\tunitRatios.percentToPxWidth = callUnitConversionData.lastPercentToPxWidth = (parseFloat(CSS.getPropertyValue(dummy, \"width\", null, true)) || 1) / measurement; /* GET */\r\n\t\t\t\t\t\t\t\t\tunitRatios.percentToPxHeight = callUnitConversionData.lastPercentToPxHeight = (parseFloat(CSS.getPropertyValue(dummy, \"height\", null, true)) || 1) / measurement; /* GET */\r\n\t\t\t\t\t\t\t\t\tunitRatios.emToPx = callUnitConversionData.lastEmToPx = (parseFloat(CSS.getPropertyValue(dummy, \"paddingLeft\")) || 1) / measurement; /* GET */\r\n\r\n\t\t\t\t\t\t\t\t\tsameRatioIndicators.myParent.removeChild(dummy);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tunitRatios.emToPx = callUnitConversionData.lastEmToPx;\r\n\t\t\t\t\t\t\t\t\tunitRatios.percentToPxWidth = callUnitConversionData.lastPercentToPxWidth;\r\n\t\t\t\t\t\t\t\t\tunitRatios.percentToPxHeight = callUnitConversionData.lastPercentToPxHeight;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/***************************\r\n\t\t\t\t\t\t\t\t Element-Agnostic Units\r\n\t\t\t\t\t\t\t\t ***************************/\r\n\r\n\t\t\t\t\t\t\t\t/* Whereas % and em ratios are determined on a per-element basis, the rem unit only needs to be checked\r\n\t\t\t\t\t\t\t\t once per call since it's exclusively dependant upon document.body's fontSize. If this is the first time\r\n\t\t\t\t\t\t\t\t that calculateUnitRatios() is being run during this call, remToPx will still be set to its default value of null,\r\n\t\t\t\t\t\t\t\t so we calculate it now. */\r\n\t\t\t\t\t\t\t\tif (callUnitConversionData.remToPx === null) {\r\n\t\t\t\t\t\t\t\t\t/* Default to browsers' default fontSize of 16px in the case of 0. */\r\n\t\t\t\t\t\t\t\t\tcallUnitConversionData.remToPx = parseFloat(CSS.getPropertyValue(document.body, \"fontSize\")) || 16; /* GET */\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t/* Similarly, viewport units are %-relative to the window's inner dimensions. */\r\n\t\t\t\t\t\t\t\tif (callUnitConversionData.vwToPx === null) {\r\n\t\t\t\t\t\t\t\t\tcallUnitConversionData.vwToPx = parseFloat(window.innerWidth) / 100; /* GET */\r\n\t\t\t\t\t\t\t\t\tcallUnitConversionData.vhToPx = parseFloat(window.innerHeight) / 100; /* GET */\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tunitRatios.remToPx = callUnitConversionData.remToPx;\r\n\t\t\t\t\t\t\t\tunitRatios.vwToPx = callUnitConversionData.vwToPx;\r\n\t\t\t\t\t\t\t\tunitRatios.vhToPx = callUnitConversionData.vhToPx;\r\n\r\n\t\t\t\t\t\t\t\tif (Velocity.debug >= 1) {\r\n\t\t\t\t\t\t\t\t\tconsole.log(\"Unit ratios: \" + JSON.stringify(unitRatios), element);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\treturn unitRatios;\r\n\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t/********************\r\n\t\t\t\t\t\t\t Unit Conversion\r\n\t\t\t\t\t\t\t ********************/\r\n\r\n\t\t\t\t\t\t\t/* The * and / operators, which are not passed in with an associated unit, inherently use startValue's unit. Skip value and unit conversion. */\r\n\t\t\t\t\t\t\tif (/[\\/*]/.test(operator)) {\r\n\t\t\t\t\t\t\t\tendValueUnitType = startValueUnitType;\r\n\t\t\t\t\t\t\t\t/* If startValue and endValue differ in unit type, convert startValue into the same unit type as endValue so that if endValueUnitType\r\n\t\t\t\t\t\t\t\t is a relative unit (%, em, rem), the values set during tweening will continue to be accurately relative even if the metrics they depend\r\n\t\t\t\t\t\t\t\t on are dynamically changing during the course of the animation. Conversely, if we always normalized into px and used px for setting values, the px ratio\r\n\t\t\t\t\t\t\t\t would become stale if the original unit being animated toward was relative and the underlying metrics change during the animation. */\r\n\t\t\t\t\t\t\t\t/* Since 0 is 0 in any unit type, no conversion is necessary when startValue is 0 -- we just start at 0 with endValueUnitType. */\r\n\t\t\t\t\t\t\t} else if ((startValueUnitType !== endValueUnitType) && startValue !== 0) {\r\n\t\t\t\t\t\t\t\t/* Unit conversion is also skipped when endValue is 0, but *startValueUnitType* must be used for tween values to remain accurate. */\r\n\t\t\t\t\t\t\t\t/* Note: Skipping unit conversion here means that if endValueUnitType was originally a relative unit, the animation won't relatively\r\n\t\t\t\t\t\t\t\t match the underlying metrics if they change, but this is acceptable since we're animating toward invisibility instead of toward visibility,\r\n\t\t\t\t\t\t\t\t which remains past the point of the animation's completion. */\r\n\t\t\t\t\t\t\t\tif (endValue === 0) {\r\n\t\t\t\t\t\t\t\t\tendValueUnitType = startValueUnitType;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t/* By this point, we cannot avoid unit conversion (it's undesirable since it causes layout thrashing).\r\n\t\t\t\t\t\t\t\t\t If we haven't already, we trigger calculateUnitRatios(), which runs once per element per call. */\r\n\t\t\t\t\t\t\t\t\telementUnitConversionData = elementUnitConversionData || calculateUnitRatios();\r\n\r\n\t\t\t\t\t\t\t\t\t/* The following RegEx matches CSS properties that have their % values measured relative to the x-axis. */\r\n\t\t\t\t\t\t\t\t\t/* Note: W3C spec mandates that all of margin and padding's properties (even top and bottom) are %-relative to the *width* of the parent element. */\r\n\t\t\t\t\t\t\t\t\tvar axis = (/margin|padding|left|right|width|text|word|letter/i.test(property) || /X$/.test(property) || property === \"x\") ? \"x\" : \"y\";\r\n\r\n\t\t\t\t\t\t\t\t\t/* In order to avoid generating n^2 bespoke conversion functions, unit conversion is a two-step process:\r\n\t\t\t\t\t\t\t\t\t 1) Convert startValue into pixels. 2) Convert this new pixel value into endValue's unit type. */\r\n\t\t\t\t\t\t\t\t\tswitch (startValueUnitType) {\r\n\t\t\t\t\t\t\t\t\t\tcase \"%\":\r\n\t\t\t\t\t\t\t\t\t\t\t/* Note: translateX and translateY are the only properties that are %-relative to an element's own dimensions -- not its parent's dimensions.\r\n\t\t\t\t\t\t\t\t\t\t\t Velocity does not include a special conversion process to account for this behavior. Therefore, animating translateX/Y from a % value\r\n\t\t\t\t\t\t\t\t\t\t\t to a non-% value will produce an incorrect start value. Fortunately, this sort of cross-unit conversion is rarely done by users in practice. */\r\n\t\t\t\t\t\t\t\t\t\t\tstartValue *= (axis === \"x\" ? elementUnitConversionData.percentToPxWidth : elementUnitConversionData.percentToPxHeight);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\tcase \"px\":\r\n\t\t\t\t\t\t\t\t\t\t\t/* px acts as our midpoint in the unit conversion process; do nothing. */\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t\t\tstartValue *= elementUnitConversionData[startValueUnitType + \"ToPx\"];\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t/* Invert the px ratios to convert into to the target unit. */\r\n\t\t\t\t\t\t\t\t\tswitch (endValueUnitType) {\r\n\t\t\t\t\t\t\t\t\t\tcase \"%\":\r\n\t\t\t\t\t\t\t\t\t\t\tstartValue *= 1 / (axis === \"x\" ? elementUnitConversionData.percentToPxWidth : elementUnitConversionData.percentToPxHeight);\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\tcase \"px\":\r\n\t\t\t\t\t\t\t\t\t\t\t/* startValue is already in px, do nothing; we're done. */\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\t\t\tdefault:\r\n\t\t\t\t\t\t\t\t\t\t\tstartValue *= 1 / elementUnitConversionData[endValueUnitType + \"ToPx\"];\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/*********************\r\n\t\t\t\t\t\t\t Relative Values\r\n\t\t\t\t\t\t\t *********************/\r\n\r\n\t\t\t\t\t\t\t/* Operator logic must be performed last since it requires unit-normalized start and end values. */\r\n\t\t\t\t\t\t\t/* Note: Relative *percent values* do not behave how most people think; while one would expect \"+=50%\"\r\n\t\t\t\t\t\t\t to increase the property 1.5x its current value, it in fact increases the percent units in absolute terms:\r\n\t\t\t\t\t\t\t 50 points is added on top of the current % value. */\r\n\t\t\t\t\t\t\tswitch (operator) {\r\n\t\t\t\t\t\t\t\tcase \"+\":\r\n\t\t\t\t\t\t\t\t\tendValue = startValue + endValue;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase \"-\":\r\n\t\t\t\t\t\t\t\t\tendValue = startValue - endValue;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase \"*\":\r\n\t\t\t\t\t\t\t\t\tendValue = startValue * endValue;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\r\n\t\t\t\t\t\t\t\tcase \"/\":\r\n\t\t\t\t\t\t\t\t\tendValue = startValue / endValue;\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/**************************\r\n\t\t\t\t\t\t\t tweensContainer Push\r\n\t\t\t\t\t\t\t **************************/\r\n\r\n\t\t\t\t\t\t\t/* Construct the per-property tween object, and push it to the element's tweensContainer. */\r\n\t\t\t\t\t\t\ttweensContainer[property] = {\r\n\t\t\t\t\t\t\t\trootPropertyValue: rootPropertyValue,\r\n\t\t\t\t\t\t\t\tstartValue: startValue,\r\n\t\t\t\t\t\t\t\tcurrentValue: startValue,\r\n\t\t\t\t\t\t\t\tendValue: endValue,\r\n\t\t\t\t\t\t\t\tunitType: endValueUnitType,\r\n\t\t\t\t\t\t\t\teasing: easing\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\tif (pattern) {\r\n\t\t\t\t\t\t\t\ttweensContainer[property].pattern = pattern;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (Velocity.debug) {\r\n\t\t\t\t\t\t\t\tconsole.log(\"tweensContainer (\" + property + \"): \" + JSON.stringify(tweensContainer[property]), element);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t/* Create a tween out of each property, and append its associated data to tweensContainer. */\r\n\t\t\t\t\t\tfor (var property in propertiesMap) {\r\n\r\n\t\t\t\t\t\t\tif (!propertiesMap.hasOwnProperty(property)) {\r\n\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t/* The original property name's format must be used for the parsePropertyValue() lookup,\r\n\t\t\t\t\t\t\t but we then use its camelCase styling to normalize it for manipulation. */\r\n\t\t\t\t\t\t\tvar propertyName = CSS.Names.camelCase(property),\r\n\t\t\t\t\t\t\t\t\tvalueData = parsePropertyValue(propertiesMap[property]);\r\n\r\n\t\t\t\t\t\t\t/* Find shorthand color properties that have been passed a hex string. */\r\n\t\t\t\t\t\t\t/* Would be quicker to use CSS.Lists.colors.includes() if possible */\r\n\t\t\t\t\t\t\tif (_inArray(CSS.Lists.colors, propertyName)) {\r\n\t\t\t\t\t\t\t\t/* Parse the value data for each shorthand. */\r\n\t\t\t\t\t\t\t\tvar endValue = valueData[0],\r\n\t\t\t\t\t\t\t\t\t\teasing = valueData[1],\r\n\t\t\t\t\t\t\t\t\t\tstartValue = valueData[2];\r\n\r\n\t\t\t\t\t\t\t\tif (CSS.RegEx.isHex.test(endValue)) {\r\n\t\t\t\t\t\t\t\t\t/* Convert the hex strings into their RGB component arrays. */\r\n\t\t\t\t\t\t\t\t\tvar colorComponents = [\"Red\", \"Green\", \"Blue\"],\r\n\t\t\t\t\t\t\t\t\t\t\tendValueRGB = CSS.Values.hexToRgb(endValue),\r\n\t\t\t\t\t\t\t\t\t\t\tstartValueRGB = startValue ? CSS.Values.hexToRgb(startValue) : undefined;\r\n\r\n\t\t\t\t\t\t\t\t\t/* Inject the RGB component tweens into propertiesMap. */\r\n\t\t\t\t\t\t\t\t\tfor (var i = 0; i < colorComponents.length; i++) {\r\n\t\t\t\t\t\t\t\t\t\tvar dataArray = [endValueRGB[i]];\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (easing) {\r\n\t\t\t\t\t\t\t\t\t\t\tdataArray.push(easing);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (startValueRGB !== undefined) {\r\n\t\t\t\t\t\t\t\t\t\t\tdataArray.push(startValueRGB[i]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tfixPropertyValue(propertyName + colorComponents[i], dataArray);\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t/* If we have replaced a shortcut color value then don't update the standard property name */\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tfixPropertyValue(propertyName, valueData);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Along with its property data, store a reference to the element itself onto tweensContainer. */\r\n\t\t\t\t\t\ttweensContainer.element = element;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/*****************\r\n\t\t\t\t\t Call Push\r\n\t\t\t\t\t *****************/\r\n\r\n\t\t\t\t\t/* Note: tweensContainer can be empty if all of the properties in this call's property map were skipped due to not\r\n\t\t\t\t\t being supported by the browser. The element property is used for checking that the tweensContainer has been appended to. */\r\n\t\t\t\t\tif (tweensContainer.element) {\r\n\t\t\t\t\t\t/* Apply the \"velocity-animating\" indicator class. */\r\n\t\t\t\t\t\tCSS.Values.addClass(element, \"velocity-animating\");\r\n\r\n\t\t\t\t\t\t/* The call array houses the tweensContainers for each element being animated in the current call. */\r\n\t\t\t\t\t\tcall.push(tweensContainer);\r\n\r\n\t\t\t\t\t\tdata = Data(element);\r\n\r\n\t\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\t\t/* Store the tweensContainer and options if we're working on the default effects queue, so that they can be used by the reverse command. */\r\n\t\t\t\t\t\t\tif (opts.queue === \"\") {\r\n\r\n\t\t\t\t\t\t\t\tdata.tweensContainer = tweensContainer;\r\n\t\t\t\t\t\t\t\tdata.opts = opts;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Switch on the element's animating flag. */\r\n\t\t\t\t\t\t\tdata.isAnimating = true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Once the final element in this call's element set has been processed, push the call array onto\r\n\t\t\t\t\t\t Velocity.State.calls for the animation tick to immediately begin processing. */\r\n\t\t\t\t\t\tif (elementsIndex === elementsLength - 1) {\r\n\t\t\t\t\t\t\t/* Add the current call plus its associated metadata (the element set and the call's options) onto the global call container.\r\n\t\t\t\t\t\t\t Anything on this call container is subjected to tick() processing. */\r\n\t\t\t\t\t\t\tVelocity.State.calls.push([call, elements, opts, null, promiseData.resolver, null, 0]);\r\n\r\n\t\t\t\t\t\t\t/* If the animation tick isn't running, start it. (Velocity shuts it off when there are no active calls to process.) */\r\n\t\t\t\t\t\t\tif (Velocity.State.isTicking === false) {\r\n\t\t\t\t\t\t\t\tVelocity.State.isTicking = true;\r\n\r\n\t\t\t\t\t\t\t\t/* Start the tick loop. */\r\n\t\t\t\t\t\t\t\ttick();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\telementsIndex++;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* When the queue option is set to false, the call skips the element's queue and fires immediately. */\r\n\t\t\t\tif (opts.queue === false) {\r\n\t\t\t\t\t/* Since this buildQueue call doesn't respect the element's existing queue (which is where a delay option would have been appended),\r\n\t\t\t\t\t we manually inject the delay property here with an explicit setTimeout. */\r\n\t\t\t\t\tif (opts.delay) {\r\n\r\n\t\t\t\t\t\t/* Temporarily store delayed elements to facilitate access for global pause/resume */\r\n\t\t\t\t\t\tvar callIndex = Velocity.State.delayedElements.count++;\r\n\t\t\t\t\t\tVelocity.State.delayedElements[callIndex] = element;\r\n\r\n\t\t\t\t\t\tvar delayComplete = (function(index) {\r\n\t\t\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\t\t\t/* Clear the temporary element */\r\n\t\t\t\t\t\t\t\tVelocity.State.delayedElements[index] = false;\r\n\r\n\t\t\t\t\t\t\t\t/* Finally, issue the call */\r\n\t\t\t\t\t\t\t\tbuildQueue();\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t})(callIndex);\r\n\r\n\t\t\t\t\t\tData(element).delayBegin = (new Date()).getTime();\r\n\t\t\t\t\t\tData(element).delay = parseFloat(opts.delay);\r\n\t\t\t\t\t\tData(element).delayTimer = {\r\n\t\t\t\t\t\t\tsetTimeout: setTimeout(buildQueue, parseFloat(opts.delay)),\r\n\t\t\t\t\t\t\tnext: delayComplete\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tbuildQueue();\r\n\t\t\t\t\t}\r\n\t\t\t\t\t/* Otherwise, the call undergoes element queueing as normal. */\r\n\t\t\t\t\t/* Note: To interoperate with jQuery, Velocity uses jQuery's own $.queue() stack for queuing logic. */\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$.queue(element, opts.queue, function(next, clearQueue) {\r\n\t\t\t\t\t\t/* If the clearQueue flag was passed in by the stop command, resolve this call's promise. (Promises can only be resolved once,\r\n\t\t\t\t\t\t so it's fine if this is repeatedly triggered for each element in the associated call.) */\r\n\t\t\t\t\t\tif (clearQueue === true) {\r\n\t\t\t\t\t\t\tif (promiseData.promise) {\r\n\t\t\t\t\t\t\t\tpromiseData.resolver(elements);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t/* Do not continue with animation queueing. */\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* This flag indicates to the upcoming completeCall() function that this queue entry was initiated by Velocity.\r\n\t\t\t\t\t\t See completeCall() for further details. */\r\n\t\t\t\t\t\tVelocity.velocityQueueEntryFlag = true;\r\n\r\n\t\t\t\t\t\tbuildQueue(next);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*********************\r\n\t\t\t\t Auto-Dequeuing\r\n\t\t\t\t *********************/\r\n\r\n\t\t\t\t/* As per jQuery's $.queue() behavior, to fire the first non-custom-queue entry on an element, the element\r\n\t\t\t\t must be dequeued if its queue stack consists *solely* of the current call. (This can be determined by checking\r\n\t\t\t\t for the \"inprogress\" item that jQuery prepends to active queue stack arrays.) Regardless, whenever the element's\r\n\t\t\t\t queue is further appended with additional items -- including $.delay()'s or even $.animate() calls, the queue's\r\n\t\t\t\t first entry is automatically fired. This behavior contrasts that of custom queues, which never auto-fire. */\r\n\t\t\t\t/* Note: When an element set is being subjected to a non-parallel Velocity call, the animation will not begin until\r\n\t\t\t\t each one of the elements in the set has reached the end of its individually pre-existing queue chain. */\r\n\t\t\t\t/* Note: Unfortunately, most people don't fully grasp jQuery's powerful, yet quirky, $.queue() function.\r\n\t\t\t\t Lean more here: http://stackoverflow.com/questions/1058158/can-somebody-explain-jquery-queue-to-me */\r\n\t\t\t\tif ((opts.queue === \"\" || opts.queue === \"fx\") && $.queue(element)[0] !== \"inprogress\") {\r\n\t\t\t\t\t$.dequeue(element);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/**************************\r\n\t\t\t Element Set Iteration\r\n\t\t\t **************************/\r\n\r\n\t\t\t/* If the \"nodeType\" property exists on the elements variable, we're animating a single element.\r\n\t\t\t Place it in an array so that $.each() can iterate over it. */\r\n\t\t\t$.each(elements, function(i, element) {\r\n\t\t\t\t/* Ensure each element in a set has a nodeType (is a real element) to avoid throwing errors. */\r\n\t\t\t\tif (Type.isNode(element)) {\r\n\t\t\t\t\tprocessElement(element, i);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t/******************\r\n\t\t\t Option: Loop\r\n\t\t\t ******************/\r\n\r\n\t\t\t/* The loop option accepts an integer indicating how many times the element should loop between the values in the\r\n\t\t\t current call's properties map and the element's property values prior to this call. */\r\n\t\t\t/* Note: The loop option's logic is performed here -- after element processing -- because the current call needs\r\n\t\t\t to undergo its queue insertion prior to the loop option generating its series of constituent \"reverse\" calls,\r\n\t\t\t which chain after the current call. Two reverse calls (two \"alternations\") constitute one loop. */\r\n\t\t\topts = $.extend({}, Velocity.defaults, options);\r\n\t\t\topts.loop = parseInt(opts.loop, 10);\r\n\t\t\tvar reverseCallsCount = (opts.loop * 2) - 1;\r\n\r\n\t\t\tif (opts.loop) {\r\n\t\t\t\t/* Double the loop count to convert it into its appropriate number of \"reverse\" calls.\r\n\t\t\t\t Subtract 1 from the resulting value since the current call is included in the total alternation count. */\r\n\t\t\t\tfor (var x = 0; x < reverseCallsCount; x++) {\r\n\t\t\t\t\t/* Since the logic for the reverse action occurs inside Queueing and therefore this call's options object\r\n\t\t\t\t\t isn't parsed until then as well, the current call's delay option must be explicitly passed into the reverse\r\n\t\t\t\t\t call so that the delay logic that occurs inside *Pre-Queueing* can process it. */\r\n\t\t\t\t\tvar reverseOptions = {\r\n\t\t\t\t\t\tdelay: opts.delay,\r\n\t\t\t\t\t\tprogress: opts.progress\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/* If a complete callback was passed into this call, transfer it to the loop redirect's final \"reverse\" call\r\n\t\t\t\t\t so that it's triggered when the entire redirect is complete (and not when the very first animation is complete). */\r\n\t\t\t\t\tif (x === reverseCallsCount - 1) {\r\n\t\t\t\t\t\treverseOptions.display = opts.display;\r\n\t\t\t\t\t\treverseOptions.visibility = opts.visibility;\r\n\t\t\t\t\t\treverseOptions.complete = opts.complete;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tanimate(elements, \"reverse\", reverseOptions);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/***************\r\n\t\t\t Chaining\r\n\t\t\t ***************/\r\n\r\n\t\t\t/* Return the elements back to the call chain, with wrapped elements taking precedence in case Velocity was called via the $.fn. extension. */\r\n\t\t\treturn getChain();\r\n\t\t};\r\n\r\n\t\t/* Turn Velocity into the animation function, extended with the pre-existing Velocity object. */\r\n\t\tVelocity = $.extend(animate, Velocity);\r\n\t\t/* For legacy support, also expose the literal animate method. */\r\n\t\tVelocity.animate = animate;\r\n\r\n\t\t/**************\r\n\t\t Timing\r\n\t\t **************/\r\n\r\n\t\t/* Ticker function. */\r\n\t\tvar ticker = window.requestAnimationFrame || rAFShim;\r\n\r\n\t\t/* Inactive browser tabs pause rAF, which results in all active animations immediately sprinting to their completion states when the tab refocuses.\r\n\t\t To get around this, we dynamically switch rAF to setTimeout (which the browser *doesn't* pause) when the tab loses focus. We skip this for mobile\r\n\t\t devices to avoid wasting battery power on inactive tabs. */\r\n\t\t/* Note: Tab focus detection doesn't work on older versions of IE, but that's okay since they don't support rAF to begin with. */\r\n\t\tif (!Velocity.State.isMobile && document.hidden !== undefined) {\r\n\t\t\tvar updateTicker = function() {\r\n\t\t\t\t/* Reassign the rAF function (which the global tick() function uses) based on the tab's focus state. */\r\n\t\t\t\tif (document.hidden) {\r\n\t\t\t\t\tticker = function(callback) {\r\n\t\t\t\t\t\t/* The tick function needs a truthy first argument in order to pass its internal timestamp check. */\r\n\t\t\t\t\t\treturn setTimeout(function() {\r\n\t\t\t\t\t\t\tcallback(true);\r\n\t\t\t\t\t\t}, 16);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t/* The rAF loop has been paused by the browser, so we manually restart the tick. */\r\n\t\t\t\t\ttick();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tticker = window.requestAnimationFrame || rAFShim;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\t/* Page could be sitting in the background at this time (i.e. opened as new tab) so making sure we use correct ticker from the start */\r\n\t\t\tupdateTicker();\r\n\r\n\t\t\t/* And then run check again every time visibility changes */\r\n\t\t\tdocument.addEventListener(\"visibilitychange\", updateTicker);\r\n\t\t}\r\n\r\n\t\t/************\r\n\t\t Tick\r\n\t\t ************/\r\n\r\n\t\t/* Note: All calls to Velocity are pushed to the Velocity.State.calls array, which is fully iterated through upon each tick. */\r\n\t\tfunction tick(timestamp) {\r\n\t\t\t/* An empty timestamp argument indicates that this is the first tick occurence since ticking was turned on.\r\n\t\t\t We leverage this metadata to fully ignore the first tick pass since RAF's initial pass is fired whenever\r\n\t\t\t the browser's next tick sync time occurs, which results in the first elements subjected to Velocity\r\n\t\t\t calls being animated out of sync with any elements animated immediately thereafter. In short, we ignore\r\n\t\t\t the first RAF tick pass so that elements being immediately consecutively animated -- instead of simultaneously animated\r\n\t\t\t by the same Velocity call -- are properly batched into the same initial RAF tick and consequently remain in sync thereafter. */\r\n\t\t\tif (timestamp) {\r\n\t\t\t\t/* We normally use RAF's high resolution timestamp but as it can be significantly offset when the browser is\r\n\t\t\t\t under high stress we give the option for choppiness over allowing the browser to drop huge chunks of frames.\r\n\t\t\t\t We use performance.now() and shim it if it doesn't exist for when the tab is hidden. */\r\n\t\t\t\tvar timeCurrent = Velocity.timestamp && timestamp !== true ? timestamp : performance.now();\r\n\r\n\t\t\t\t/********************\r\n\t\t\t\t Call Iteration\r\n\t\t\t\t ********************/\r\n\r\n\t\t\t\tvar callsLength = Velocity.State.calls.length;\r\n\r\n\t\t\t\t/* To speed up iterating over this array, it is compacted (falsey items -- calls that have completed -- are removed)\r\n\t\t\t\t when its length has ballooned to a point that can impact tick performance. This only becomes necessary when animation\r\n\t\t\t\t has been continuous with many elements over a long period of time; whenever all active calls are completed, completeCall() clears Velocity.State.calls. */\r\n\t\t\t\tif (callsLength > 10000) {\r\n\t\t\t\t\tVelocity.State.calls = compactSparseArray(Velocity.State.calls);\r\n\t\t\t\t\tcallsLength = Velocity.State.calls.length;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* Iterate through each active call. */\r\n\t\t\t\tfor (var i = 0; i < callsLength; i++) {\r\n\t\t\t\t\t/* When a Velocity call is completed, its Velocity.State.calls entry is set to false. Continue on to the next call. */\r\n\t\t\t\t\tif (!Velocity.State.calls[i]) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/************************\r\n\t\t\t\t\t Call-Wide Variables\r\n\t\t\t\t\t ************************/\r\n\r\n\t\t\t\t\tvar callContainer = Velocity.State.calls[i],\r\n\t\t\t\t\t\t\tcall = callContainer[0],\r\n\t\t\t\t\t\t\topts = callContainer[2],\r\n\t\t\t\t\t\t\ttimeStart = callContainer[3],\r\n\t\t\t\t\t\t\tfirstTick = !timeStart,\r\n\t\t\t\t\t\t\ttweenDummyValue = null,\r\n\t\t\t\t\t\t\tpauseObject = callContainer[5],\r\n\t\t\t\t\t\t\tmillisecondsEllapsed = callContainer[6];\r\n\r\n\r\n\r\n\t\t\t\t\t/* If timeStart is undefined, then this is the first time that this call has been processed by tick().\r\n\t\t\t\t\t We assign timeStart now so that its value is as close to the real animation start time as possible.\r\n\t\t\t\t\t (Conversely, had timeStart been defined when this call was added to Velocity.State.calls, the delay\r\n\t\t\t\t\t between that time and now would cause the first few frames of the tween to be skipped since\r\n\t\t\t\t\t percentComplete is calculated relative to timeStart.) */\r\n\t\t\t\t\t/* Further, subtract 16ms (the approximate resolution of RAF) from the current time value so that the\r\n\t\t\t\t\t first tick iteration isn't wasted by animating at 0% tween completion, which would produce the\r\n\t\t\t\t\t same style value as the element's current value. */\r\n\t\t\t\t\tif (!timeStart) {\r\n\t\t\t\t\t\ttimeStart = Velocity.State.calls[i][3] = timeCurrent - 16;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If a pause object is present, skip processing unless it has been set to resume */\r\n\t\t\t\t\tif (pauseObject) {\r\n\t\t\t\t\t\tif (pauseObject.resume === true) {\r\n\t\t\t\t\t\t\t/* Update the time start to accomodate the paused completion amount */\r\n\t\t\t\t\t\t\ttimeStart = callContainer[3] = Math.round(timeCurrent - millisecondsEllapsed - 16);\r\n\r\n\t\t\t\t\t\t\t/* Remove pause object after processing */\r\n\t\t\t\t\t\t\tcallContainer[5] = null;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tmillisecondsEllapsed = callContainer[6] = timeCurrent - timeStart;\r\n\r\n\t\t\t\t\t/* The tween's completion percentage is relative to the tween's start time, not the tween's start value\r\n\t\t\t\t\t (which would result in unpredictable tween durations since JavaScript's timers are not particularly accurate).\r\n\t\t\t\t\t Accordingly, we ensure that percentComplete does not exceed 1. */\r\n\t\t\t\t\tvar percentComplete = Math.min((millisecondsEllapsed) / opts.duration, 1);\r\n\r\n\t\t\t\t\t/**********************\r\n\t\t\t\t\t Element Iteration\r\n\t\t\t\t\t **********************/\r\n\r\n\t\t\t\t\t/* For every call, iterate through each of the elements in its set. */\r\n\t\t\t\t\tfor (var j = 0, callLength = call.length; j < callLength; j++) {\r\n\t\t\t\t\t\tvar tweensContainer = call[j],\r\n\t\t\t\t\t\t\t\telement = tweensContainer.element;\r\n\r\n\t\t\t\t\t\t/* Check to see if this element has been deleted midway through the animation by checking for the\r\n\t\t\t\t\t\t continued existence of its data cache. If it's gone, or the element is currently paused, skip animating this element. */\r\n\t\t\t\t\t\tif (!Data(element)) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar transformPropertyExists = false;\r\n\r\n\t\t\t\t\t\t/**********************************\r\n\t\t\t\t\t\t Display & Visibility Toggling\r\n\t\t\t\t\t\t **********************************/\r\n\r\n\t\t\t\t\t\t/* If the display option is set to non-\"none\", set it upfront so that the element can become visible before tweening begins.\r\n\t\t\t\t\t\t (Otherwise, display's \"none\" value is set in completeCall() once the animation has completed.) */\r\n\t\t\t\t\t\tif (opts.display !== undefined && opts.display !== null && opts.display !== \"none\") {\r\n\t\t\t\t\t\t\tif (opts.display === \"flex\") {\r\n\t\t\t\t\t\t\t\tvar flexValues = [\"-webkit-box\", \"-moz-box\", \"-ms-flexbox\", \"-webkit-flex\"];\r\n\r\n\t\t\t\t\t\t\t\t$.each(flexValues, function(i, flexValue) {\r\n\t\t\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", flexValue);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", opts.display);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Same goes with the visibility option, but its \"none\" equivalent is \"hidden\". */\r\n\t\t\t\t\t\tif (opts.visibility !== undefined && opts.visibility !== \"hidden\") {\r\n\t\t\t\t\t\t\tCSS.setPropertyValue(element, \"visibility\", opts.visibility);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/************************\r\n\t\t\t\t\t\t Property Iteration\r\n\t\t\t\t\t\t ************************/\r\n\r\n\t\t\t\t\t\t/* For every element, iterate through each property. */\r\n\t\t\t\t\t\tfor (var property in tweensContainer) {\r\n\t\t\t\t\t\t\t/* Note: In addition to property tween data, tweensContainer contains a reference to its associated element. */\r\n\t\t\t\t\t\t\tif (tweensContainer.hasOwnProperty(property) && property !== \"element\") {\r\n\t\t\t\t\t\t\t\tvar tween = tweensContainer[property],\r\n\t\t\t\t\t\t\t\t\t\tcurrentValue,\r\n\t\t\t\t\t\t\t\t\t\t/* Easing can either be a pre-genereated function or a string that references a pre-registered easing\r\n\t\t\t\t\t\t\t\t\t\t on the Velocity.Easings object. In either case, return the appropriate easing *function*. */\r\n\t\t\t\t\t\t\t\t\t\teasing = Type.isString(tween.easing) ? Velocity.Easings[tween.easing] : tween.easing;\r\n\r\n\t\t\t\t\t\t\t\t/******************************\r\n\t\t\t\t\t\t\t\t Current Value Calculation\r\n\t\t\t\t\t\t\t\t ******************************/\r\n\r\n\t\t\t\t\t\t\t\tif (Type.isString(tween.pattern)) {\r\n\t\t\t\t\t\t\t\t\tvar patternReplace = percentComplete === 1 ?\r\n\t\t\t\t\t\t\t\t\t\t\tfunction($0, index, round) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar result = tween.endValue[index];\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn round ? Math.round(result) : result;\r\n\t\t\t\t\t\t\t\t\t\t\t} :\r\n\t\t\t\t\t\t\t\t\t\t\tfunction($0, index, round) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tvar startValue = tween.startValue[index],\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttweenDelta = tween.endValue[index] - startValue,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresult = startValue + (tweenDelta * easing(percentComplete, opts, tweenDelta));\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn round ? Math.round(result) : result;\r\n\t\t\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t\t\tcurrentValue = tween.pattern.replace(/{(\\d+)(!)?}/g, patternReplace);\r\n\t\t\t\t\t\t\t\t} else if (percentComplete === 1) {\r\n\t\t\t\t\t\t\t\t\t/* If this is the last tick pass (if we've reached 100% completion for this tween),\r\n\t\t\t\t\t\t\t\t\t ensure that currentValue is explicitly set to its target endValue so that it's not subjected to any rounding. */\r\n\t\t\t\t\t\t\t\t\tcurrentValue = tween.endValue;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t/* Otherwise, calculate currentValue based on the current delta from startValue. */\r\n\t\t\t\t\t\t\t\t\tvar tweenDelta = tween.endValue - tween.startValue;\r\n\r\n\t\t\t\t\t\t\t\t\tcurrentValue = tween.startValue + (tweenDelta * easing(percentComplete, opts, tweenDelta));\r\n\t\t\t\t\t\t\t\t\t/* If no value change is occurring, don't proceed with DOM updating. */\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tif (!firstTick && (currentValue === tween.currentValue)) {\r\n\t\t\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\ttween.currentValue = currentValue;\r\n\r\n\t\t\t\t\t\t\t\t/* If we're tweening a fake 'tween' property in order to log transition values, update the one-per-call variable so that\r\n\t\t\t\t\t\t\t\t it can be passed into the progress callback. */\r\n\t\t\t\t\t\t\t\tif (property === \"tween\") {\r\n\t\t\t\t\t\t\t\t\ttweenDummyValue = currentValue;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t/******************\r\n\t\t\t\t\t\t\t\t\t Hooks: Part I\r\n\t\t\t\t\t\t\t\t\t ******************/\r\n\t\t\t\t\t\t\t\t\tvar hookRoot;\r\n\r\n\t\t\t\t\t\t\t\t\t/* For hooked properties, the newly-updated rootPropertyValueCache is cached onto the element so that it can be used\r\n\t\t\t\t\t\t\t\t\t for subsequent hooks in this call that are associated with the same root property. If we didn't cache the updated\r\n\t\t\t\t\t\t\t\t\t rootPropertyValue, each subsequent update to the root property in this tick pass would reset the previous hook's\r\n\t\t\t\t\t\t\t\t\t updates to rootPropertyValue prior to injection. A nice performance byproduct of rootPropertyValue caching is that\r\n\t\t\t\t\t\t\t\t\t subsequently chained animations using the same hookRoot but a different hook can use this cached rootPropertyValue. */\r\n\t\t\t\t\t\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\t\t\t\t\t\thookRoot = CSS.Hooks.getRoot(property);\r\n\r\n\t\t\t\t\t\t\t\t\t\tvar rootPropertyValueCache = Data(element).rootPropertyValueCache[hookRoot];\r\n\r\n\t\t\t\t\t\t\t\t\t\tif (rootPropertyValueCache) {\r\n\t\t\t\t\t\t\t\t\t\t\ttween.rootPropertyValue = rootPropertyValueCache;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t/*****************\r\n\t\t\t\t\t\t\t\t\t DOM Update\r\n\t\t\t\t\t\t\t\t\t *****************/\r\n\r\n\t\t\t\t\t\t\t\t\t/* setPropertyValue() returns an array of the property name and property value post any normalization that may have been performed. */\r\n\t\t\t\t\t\t\t\t\t/* Note: To solve an IE<=8 positioning bug, the unit type is dropped when setting a property value of 0. */\r\n\t\t\t\t\t\t\t\t\tvar adjustedSetData = CSS.setPropertyValue(element, /* SET */\r\n\t\t\t\t\t\t\t\t\t\t\tproperty,\r\n\t\t\t\t\t\t\t\t\t\t\ttween.currentValue + (IE < 9 && parseFloat(currentValue) === 0 ? \"\" : tween.unitType),\r\n\t\t\t\t\t\t\t\t\t\t\ttween.rootPropertyValue,\r\n\t\t\t\t\t\t\t\t\t\t\ttween.scrollData);\r\n\r\n\t\t\t\t\t\t\t\t\t/*******************\r\n\t\t\t\t\t\t\t\t\t Hooks: Part II\r\n\t\t\t\t\t\t\t\t\t *******************/\r\n\r\n\t\t\t\t\t\t\t\t\t/* Now that we have the hook's updated rootPropertyValue (the post-processed value provided by adjustedSetData), cache it onto the element. */\r\n\t\t\t\t\t\t\t\t\tif (CSS.Hooks.registered[property]) {\r\n\t\t\t\t\t\t\t\t\t\t/* Since adjustedSetData contains normalized data ready for DOM updating, the rootPropertyValue needs to be re-extracted from its normalized form. ?? */\r\n\t\t\t\t\t\t\t\t\t\tif (CSS.Normalizations.registered[hookRoot]) {\r\n\t\t\t\t\t\t\t\t\t\t\tData(element).rootPropertyValueCache[hookRoot] = CSS.Normalizations.registered[hookRoot](\"extract\", null, adjustedSetData[1]);\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\tData(element).rootPropertyValueCache[hookRoot] = adjustedSetData[1];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t/***************\r\n\t\t\t\t\t\t\t\t\t Transforms\r\n\t\t\t\t\t\t\t\t\t ***************/\r\n\r\n\t\t\t\t\t\t\t\t\t/* Flag whether a transform property is being animated so that flushTransformCache() can be triggered once this tick pass is complete. */\r\n\t\t\t\t\t\t\t\t\tif (adjustedSetData[0] === \"transform\") {\r\n\t\t\t\t\t\t\t\t\t\ttransformPropertyExists = true;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/****************\r\n\t\t\t\t\t\t mobileHA\r\n\t\t\t\t\t\t ****************/\r\n\r\n\t\t\t\t\t\t/* If mobileHA is enabled, set the translate3d transform to null to force hardware acceleration.\r\n\t\t\t\t\t\t It's safe to override this property since Velocity doesn't actually support its animation (hooks are used in its place). */\r\n\t\t\t\t\t\tif (opts.mobileHA) {\r\n\t\t\t\t\t\t\t/* Don't set the null transform hack if we've already done so. */\r\n\t\t\t\t\t\t\tif (Data(element).transformCache.translate3d === undefined) {\r\n\t\t\t\t\t\t\t\t/* All entries on the transformCache object are later concatenated into a single transform string via flushTransformCache(). */\r\n\t\t\t\t\t\t\t\tData(element).transformCache.translate3d = \"(0px, 0px, 0px)\";\r\n\r\n\t\t\t\t\t\t\t\ttransformPropertyExists = true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (transformPropertyExists) {\r\n\t\t\t\t\t\t\tCSS.flushTransformCache(element);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* The non-\"none\" display value is only applied to an element once -- when its associated call is first ticked through.\r\n\t\t\t\t\t Accordingly, it's set to false so that it isn't re-processed by this call in the next tick. */\r\n\t\t\t\t\tif (opts.display !== undefined && opts.display !== \"none\") {\r\n\t\t\t\t\t\tVelocity.State.calls[i][2].display = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (opts.visibility !== undefined && opts.visibility !== \"hidden\") {\r\n\t\t\t\t\t\tVelocity.State.calls[i][2].visibility = false;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Pass the elements and the timing data (percentComplete, msRemaining, timeStart, tweenDummyValue) into the progress callback. */\r\n\t\t\t\t\tif (opts.progress) {\r\n\t\t\t\t\t\topts.progress.call(callContainer[1],\r\n\t\t\t\t\t\t\t\tcallContainer[1],\r\n\t\t\t\t\t\t\t\tpercentComplete,\r\n\t\t\t\t\t\t\t\tMath.max(0, (timeStart + opts.duration) - timeCurrent),\r\n\t\t\t\t\t\t\t\ttimeStart,\r\n\t\t\t\t\t\t\t\ttweenDummyValue);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If this call has finished tweening, pass its index to completeCall() to handle call cleanup. */\r\n\t\t\t\t\tif (percentComplete === 1) {\r\n\t\t\t\t\t\tcompleteCall(i);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/* Note: completeCall() sets the isTicking flag to false when the last call on Velocity.State.calls has completed. */\r\n\t\t\tif (Velocity.State.isTicking) {\r\n\t\t\t\tticker(tick);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/**********************\r\n\t\t Call Completion\r\n\t\t **********************/\r\n\r\n\t\t/* Note: Unlike tick(), which processes all active calls at once, call completion is handled on a per-call basis. */\r\n\t\tfunction completeCall(callIndex, isStopped) {\r\n\t\t\t/* Ensure the call exists. */\r\n\t\t\tif (!Velocity.State.calls[callIndex]) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t/* Pull the metadata from the call. */\r\n\t\t\tvar call = Velocity.State.calls[callIndex][0],\r\n\t\t\t\t\telements = Velocity.State.calls[callIndex][1],\r\n\t\t\t\t\topts = Velocity.State.calls[callIndex][2],\r\n\t\t\t\t\tresolver = Velocity.State.calls[callIndex][4];\r\n\r\n\t\t\tvar remainingCallsExist = false;\r\n\r\n\t\t\t/*************************\r\n\t\t\t Element Finalization\r\n\t\t\t *************************/\r\n\r\n\t\t\tfor (var i = 0, callLength = call.length; i < callLength; i++) {\r\n\t\t\t\tvar element = call[i].element;\r\n\r\n\t\t\t\t/* If the user set display to \"none\" (intending to hide the element), set it now that the animation has completed. */\r\n\t\t\t\t/* Note: display:none isn't set when calls are manually stopped (via Velocity(\"stop\"). */\r\n\t\t\t\t/* Note: Display gets ignored with \"reverse\" calls and infinite loops, since this behavior would be undesirable. */\r\n\t\t\t\tif (!isStopped && !opts.loop) {\r\n\t\t\t\t\tif (opts.display === \"none\") {\r\n\t\t\t\t\t\tCSS.setPropertyValue(element, \"display\", opts.display);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (opts.visibility === \"hidden\") {\r\n\t\t\t\t\t\tCSS.setPropertyValue(element, \"visibility\", opts.visibility);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* If the element's queue is empty (if only the \"inprogress\" item is left at position 0) or if its queue is about to run\r\n\t\t\t\t a non-Velocity-initiated entry, turn off the isAnimating flag. A non-Velocity-initiatied queue entry's logic might alter\r\n\t\t\t\t an element's CSS values and thereby cause Velocity's cached value data to go stale. To detect if a queue entry was initiated by Velocity,\r\n\t\t\t\t we check for the existence of our special Velocity.queueEntryFlag declaration, which minifiers won't rename since the flag\r\n\t\t\t\t is assigned to jQuery's global $ object and thus exists out of Velocity's own scope. */\r\n\t\t\t\tvar data = Data(element);\r\n\r\n\t\t\t\tif (opts.loop !== true && ($.queue(element)[1] === undefined || !/\\.velocityQueueEntryFlag/i.test($.queue(element)[1]))) {\r\n\t\t\t\t\t/* The element may have been deleted. Ensure that its data cache still exists before acting on it. */\r\n\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\tdata.isAnimating = false;\r\n\t\t\t\t\t\t/* Clear the element's rootPropertyValueCache, which will become stale. */\r\n\t\t\t\t\t\tdata.rootPropertyValueCache = {};\r\n\r\n\t\t\t\t\t\tvar transformHAPropertyExists = false;\r\n\t\t\t\t\t\t/* If any 3D transform subproperty is at its default value (regardless of unit type), remove it. */\r\n\t\t\t\t\t\t$.each(CSS.Lists.transforms3D, function(i, transformName) {\r\n\t\t\t\t\t\t\tvar defaultValue = /^scale/.test(transformName) ? 1 : 0,\r\n\t\t\t\t\t\t\t\t\tcurrentValue = data.transformCache[transformName];\r\n\r\n\t\t\t\t\t\t\tif (data.transformCache[transformName] !== undefined && new RegExp(\"^\\\\(\" + defaultValue + \"[^.]\").test(currentValue)) {\r\n\t\t\t\t\t\t\t\ttransformHAPropertyExists = true;\r\n\r\n\t\t\t\t\t\t\t\tdelete data.transformCache[transformName];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t/* Mobile devices have hardware acceleration removed at the end of the animation in order to avoid hogging the GPU's memory. */\r\n\t\t\t\t\t\tif (opts.mobileHA) {\r\n\t\t\t\t\t\t\ttransformHAPropertyExists = true;\r\n\t\t\t\t\t\t\tdelete data.transformCache.translate3d;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Flush the subproperty removals to the DOM. */\r\n\t\t\t\t\t\tif (transformHAPropertyExists) {\r\n\t\t\t\t\t\t\tCSS.flushTransformCache(element);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t/* Remove the \"velocity-animating\" indicator class. */\r\n\t\t\t\t\t\tCSS.Values.removeClass(element, \"velocity-animating\");\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/*********************\r\n\t\t\t\t Option: Complete\r\n\t\t\t\t *********************/\r\n\r\n\t\t\t\t/* Complete is fired once per call (not once per element) and is passed the full raw DOM element set as both its context and its first argument. */\r\n\t\t\t\t/* Note: Callbacks aren't fired when calls are manually stopped (via Velocity(\"stop\"). */\r\n\t\t\t\tif (!isStopped && opts.complete && !opts.loop && (i === callLength - 1)) {\r\n\t\t\t\t\t/* We throw callbacks in a setTimeout so that thrown errors don't halt the execution of Velocity itself. */\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\topts.complete.call(elements, elements);\r\n\t\t\t\t\t} catch (error) {\r\n\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\tthrow error;\r\n\t\t\t\t\t\t}, 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/**********************\r\n\t\t\t\t Promise Resolving\r\n\t\t\t\t **********************/\r\n\r\n\t\t\t\t/* Note: Infinite loops don't return promises. */\r\n\t\t\t\tif (resolver && opts.loop !== true) {\r\n\t\t\t\t\tresolver(elements);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/****************************\r\n\t\t\t\t Option: Loop (Infinite)\r\n\t\t\t\t ****************************/\r\n\r\n\t\t\t\tif (data && opts.loop === true && !isStopped) {\r\n\t\t\t\t\t/* If a rotateX/Y/Z property is being animated by 360 deg with loop:true, swap tween start/end values to enable\r\n\t\t\t\t\t continuous iterative rotation looping. (Otherise, the element would just rotate back and forth.) */\r\n\t\t\t\t\t$.each(data.tweensContainer, function(propertyName, tweenContainer) {\r\n\t\t\t\t\t\tif (/^rotate/.test(propertyName) && ((parseFloat(tweenContainer.startValue) - parseFloat(tweenContainer.endValue)) % 360 === 0)) {\r\n\t\t\t\t\t\t\tvar oldStartValue = tweenContainer.startValue;\r\n\r\n\t\t\t\t\t\t\ttweenContainer.startValue = tweenContainer.endValue;\r\n\t\t\t\t\t\t\ttweenContainer.endValue = oldStartValue;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (/^backgroundPosition/.test(propertyName) && parseFloat(tweenContainer.endValue) === 100 && tweenContainer.unitType === \"%\") {\r\n\t\t\t\t\t\t\ttweenContainer.endValue = 0;\r\n\t\t\t\t\t\t\ttweenContainer.startValue = 100;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tVelocity(element, \"reverse\", {loop: true, delay: opts.delay});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/***************\r\n\t\t\t\t Dequeueing\r\n\t\t\t\t ***************/\r\n\r\n\t\t\t\t/* Fire the next call in the queue so long as this call's queue wasn't set to false (to trigger a parallel animation),\r\n\t\t\t\t which would have already caused the next call to fire. Note: Even if the end of the animation queue has been reached,\r\n\t\t\t\t $.dequeue() must still be called in order to completely clear jQuery's animation queue. */\r\n\t\t\t\tif (opts.queue !== false) {\r\n\t\t\t\t\t$.dequeue(element, opts.queue);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t/************************\r\n\t\t\t Calls Array Cleanup\r\n\t\t\t ************************/\r\n\r\n\t\t\t/* Since this call is complete, set it to false so that the rAF tick skips it. This array is later compacted via compactSparseArray().\r\n\t\t\t (For performance reasons, the call is set to false instead of being deleted from the array: http://www.html5rocks.com/en/tutorials/speed/v8/) */\r\n\t\t\tVelocity.State.calls[callIndex] = false;\r\n\r\n\t\t\t/* Iterate through the calls array to determine if this was the final in-progress animation.\r\n\t\t\t If so, set a flag to end ticking and clear the calls array. */\r\n\t\t\tfor (var j = 0, callsLength = Velocity.State.calls.length; j < callsLength; j++) {\r\n\t\t\t\tif (Velocity.State.calls[j] !== false) {\r\n\t\t\t\t\tremainingCallsExist = true;\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (remainingCallsExist === false) {\r\n\t\t\t\t/* tick() will detect this flag upon its next iteration and subsequently turn itself off. */\r\n\t\t\t\tVelocity.State.isTicking = false;\r\n\r\n\t\t\t\t/* Clear the calls array so that its length is reset. */\r\n\t\t\t\tdelete Velocity.State.calls;\r\n\t\t\t\tVelocity.State.calls = [];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/******************\r\n\t\t Frameworks\r\n\t\t ******************/\r\n\r\n\t\t/* Both jQuery and Zepto allow their $.fn object to be extended to allow wrapped elements to be subjected to plugin calls.\r\n\t\t If either framework is loaded, register a \"velocity\" extension pointing to Velocity's core animate() method.  Velocity\r\n\t\t also registers itself onto a global container (window.jQuery || window.Zepto || window) so that certain features are\r\n\t\t accessible beyond just a per-element scope. This master object contains an .animate() method, which is later assigned to $.fn\r\n\t\t (if jQuery or Zepto are present). Accordingly, Velocity can both act on wrapped DOM elements and stand alone for targeting raw DOM elements. */\r\n\t\tglobal.Velocity = Velocity;\r\n\r\n\t\tif (global !== window) {\r\n\t\t\t/* Assign the element function to Velocity's core animate() method. */\r\n\t\t\tglobal.fn.velocity = animate;\r\n\t\t\t/* Assign the object function's defaults to Velocity's global defaults object. */\r\n\t\t\tglobal.fn.velocity.defaults = Velocity.defaults;\r\n\t\t}\r\n\r\n\t\t/***********************\r\n\t\t Packaged Redirects\r\n\t\t ***********************/\r\n\r\n\t\t/* slideUp, slideDown */\r\n\t\t$.each([\"Down\", \"Up\"], function(i, direction) {\r\n\t\t\tVelocity.Redirects[\"slide\" + direction] = function(element, options, elementsIndex, elementsSize, elements, promiseData) {\r\n\t\t\t\tvar opts = $.extend({}, options),\r\n\t\t\t\t\t\tbegin = opts.begin,\r\n\t\t\t\t\t\tcomplete = opts.complete,\r\n\t\t\t\t\t\tinlineValues = {},\r\n\t\t\t\t\t\tcomputedValues = {height: \"\", marginTop: \"\", marginBottom: \"\", paddingTop: \"\", paddingBottom: \"\"};\r\n\r\n\t\t\t\tif (opts.display === undefined) {\r\n\t\t\t\t\t/* Show the element before slideDown begins and hide the element after slideUp completes. */\r\n\t\t\t\t\t/* Note: Inline elements cannot have dimensions animated, so they're reverted to inline-block. */\r\n\t\t\t\t\topts.display = (direction === \"Down\" ? (Velocity.CSS.Values.getDisplayType(element) === \"inline\" ? \"inline-block\" : \"block\") : \"none\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\topts.begin = function() {\r\n\t\t\t\t\t/* If the user passed in a begin callback, fire it now. */\r\n\t\t\t\t\tif (elementsIndex === 0 && begin) {\r\n\t\t\t\t\t\tbegin.call(elements, elements);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Cache the elements' original vertical dimensional property values so that we can animate back to them. */\r\n\t\t\t\t\tfor (var property in computedValues) {\r\n\t\t\t\t\t\tif (!computedValues.hasOwnProperty(property)) {\r\n\t\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tinlineValues[property] = element.style[property];\r\n\r\n\t\t\t\t\t\t/* For slideDown, use forcefeeding to animate all vertical properties from 0. For slideUp,\r\n\t\t\t\t\t\t use forcefeeding to start from computed values and animate down to 0. */\r\n\t\t\t\t\t\tvar propertyValue = CSS.getPropertyValue(element, property);\r\n\t\t\t\t\t\tcomputedValues[property] = (direction === \"Down\") ? [propertyValue, 0] : [0, propertyValue];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* Force vertical overflow content to clip so that sliding works as expected. */\r\n\t\t\t\t\tinlineValues.overflow = element.style.overflow;\r\n\t\t\t\t\telement.style.overflow = \"hidden\";\r\n\t\t\t\t};\r\n\r\n\t\t\t\topts.complete = function() {\r\n\t\t\t\t\t/* Reset element to its pre-slide inline values once its slide animation is complete. */\r\n\t\t\t\t\tfor (var property in inlineValues) {\r\n\t\t\t\t\t\tif (inlineValues.hasOwnProperty(property)) {\r\n\t\t\t\t\t\t\telement.style[property] = inlineValues[property];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* If the user passed in a complete callback, fire it now. */\r\n\t\t\t\t\tif (elementsIndex === elementsSize - 1) {\r\n\t\t\t\t\t\tif (complete) {\r\n\t\t\t\t\t\t\tcomplete.call(elements, elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (promiseData) {\r\n\t\t\t\t\t\t\tpromiseData.resolver(elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\tVelocity(element, computedValues, opts);\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\t/* fadeIn, fadeOut */\r\n\t\t$.each([\"In\", \"Out\"], function(i, direction) {\r\n\t\t\tVelocity.Redirects[\"fade\" + direction] = function(element, options, elementsIndex, elementsSize, elements, promiseData) {\r\n\t\t\t\tvar opts = $.extend({}, options),\r\n\t\t\t\t\t\tcomplete = opts.complete,\r\n\t\t\t\t\t\tpropertiesMap = {opacity: (direction === \"In\") ? 1 : 0};\r\n\r\n\t\t\t\t/* Since redirects are triggered individually for each element in the animated set, avoid repeatedly triggering\r\n\t\t\t\t callbacks by firing them only when the final element has been reached. */\r\n\t\t\t\tif (elementsIndex !== 0) {\r\n\t\t\t\t\topts.begin = null;\r\n\t\t\t\t}\r\n\t\t\t\tif (elementsIndex !== elementsSize - 1) {\r\n\t\t\t\t\topts.complete = null;\r\n\t\t\t\t} else {\r\n\t\t\t\t\topts.complete = function() {\r\n\t\t\t\t\t\tif (complete) {\r\n\t\t\t\t\t\t\tcomplete.call(elements, elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (promiseData) {\r\n\t\t\t\t\t\t\tpromiseData.resolver(elements);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\t/* If a display was passed in, use it. Otherwise, default to \"none\" for fadeOut or the element-specific default for fadeIn. */\r\n\t\t\t\t/* Note: We allow users to pass in \"null\" to skip display setting altogether. */\r\n\t\t\t\tif (opts.display === undefined) {\r\n\t\t\t\t\topts.display = (direction === \"In\" ? \"auto\" : \"none\");\r\n\t\t\t\t}\r\n\r\n\t\t\t\tVelocity(this, propertiesMap, opts);\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\treturn Velocity;\r\n\t}((window.jQuery || window.Zepto || window), window, (window ? window.document : undefined));\r\n}));\r\n\r\n/******************\r\n Known Issues\r\n ******************/\r\n\r\n/* The CSS spec mandates that the translateX/Y/Z transforms are %-relative to the element itself -- not its parent.\r\n Velocity, however, doesn't make this distinction. Thus, converting to or from the % unit with these subproperties\r\n will produce an inaccurate conversion value. The same issue exists with the cx/cy attributes of SVG circles and ellipses. */\r\n", "/*! Magnific Popup - v1.1.0 - 2016-02-20\n* http://dimsemenov.com/plugins/magnific-popup/\n* Copyright (c) 2016 Dmitry Semenov; */\n;(function (factory) { \nif (typeof define === 'function' && define.amd) { \n // AMD. Register as an anonymous module. \n define(['jquery'], factory); \n } else if (typeof exports === 'object') { \n // Node/CommonJS \n factory(require('jquery')); \n } else { \n // Browser globals \n factory(window.jQuery || window.Zepto); \n } \n }(function($) { \n\n/*>>core*/\n/**\n * \n * Magnific Popup Core JS file\n * \n */\n\n\n/**\n * Private static constants\n */\nvar CLOSE_EVENT = 'Close',\n\tBEFORE_CLOSE_EVENT = 'BeforeClose',\n\tAFTER_CLOSE_EVENT = 'AfterClose',\n\tBEFORE_APPEND_EVENT = 'BeforeAppend',\n\tMARKUP_PARSE_EVENT = 'MarkupParse',\n\tOPEN_EVENT = 'Open',\n\tCHANGE_EVENT = 'Change',\n\tNS = 'mfp',\n\tEVENT_NS = '.' + NS,\n\tREADY_CLASS = 'mfp-ready',\n\tREMOVING_CLASS = 'mfp-removing',\n\tPREVENT_CLOSE_CLASS = 'mfp-prevent-close';\n\n\n/**\n * Private vars \n */\n/*jshint -W079 */\nvar mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'\n\tMagnificPopup = function(){},\n\t_isJQ = !!(window.jQuery),\n\t_prevStatus,\n\t_window = $(window),\n\t_document,\n\t_prevContentType,\n\t_wrapClasses,\n\t_currPopupType;\n\n\n/**\n * Private functions\n */\nvar _mfpOn = function(name, f) {\n\t\tmfp.ev.on(NS + name + EVENT_NS, f);\n\t},\n\t_getEl = function(className, appendTo, html, raw) {\n\t\tvar el = document.createElement('div');\n\t\tel.className = 'mfp-'+className;\n\t\tif(html) {\n\t\t\tel.innerHTML = html;\n\t\t}\n\t\tif(!raw) {\n\t\t\tel = $(el);\n\t\t\tif(appendTo) {\n\t\t\t\tel.appendTo(appendTo);\n\t\t\t}\n\t\t} else if(appendTo) {\n\t\t\tappendTo.appendChild(el);\n\t\t}\n\t\treturn el;\n\t},\n\t_mfpTrigger = function(e, data) {\n\t\tmfp.ev.triggerHandler(NS + e, data);\n\n\t\tif(mfp.st.callbacks) {\n\t\t\t// converts \"mfpEventName\" to \"eventName\" callback and triggers it if it's present\n\t\t\te = e.charAt(0).toLowerCase() + e.slice(1);\n\t\t\tif(mfp.st.callbacks[e]) {\n\t\t\t\tmfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);\n\t\t\t}\n\t\t}\n\t},\n\t_getCloseBtn = function(type) {\n\t\tif(type !== _currPopupType || !mfp.currTemplate.closeBtn) {\n\t\t\tmfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );\n\t\t\t_currPopupType = type;\n\t\t}\n\t\treturn mfp.currTemplate.closeBtn;\n\t},\n\t// Initialize Magnific Popup only when called at least once\n\t_checkInstance = function() {\n\t\tif(!$.magnificPopup.instance) {\n\t\t\t/*jshint -W020 */\n\t\t\tmfp = new MagnificPopup();\n\t\t\tmfp.init();\n\t\t\t$.magnificPopup.instance = mfp;\n\t\t}\n\t},\n\t// CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr\n\tsupportsTransitions = function() {\n\t\tvar s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist\n\t\t\tv = ['ms','O','Moz','Webkit']; // 'v' for vendor\n\n\t\tif( s['transition'] !== undefined ) {\n\t\t\treturn true; \n\t\t}\n\t\t\t\n\t\twhile( v.length ) {\n\t\t\tif( v.pop() + 'Transition' in s ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t\t\t\n\t\treturn false;\n\t};\n\n\n\n/**\n * Public functions\n */\nMagnificPopup.prototype = {\n\n\tconstructor: MagnificPopup,\n\n\t/**\n\t * Initializes Magnific Popup plugin. \n\t * This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed\n\t */\n\tinit: function() {\n\t\tvar appVersion = navigator.appVersion;\n\t\tmfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;\n\t\tmfp.isAndroid = (/android/gi).test(appVersion);\n\t\tmfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);\n\t\tmfp.supportsTransition = supportsTransitions();\n\n\t\t// We disable fixed positioned lightbox on devices that don't handle it nicely.\n\t\t// If you know a better way of detecting this - let me know.\n\t\tmfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );\n\t\t_document = $(document);\n\n\t\tmfp.popupsCache = {};\n\t},\n\n\t/**\n\t * Opens popup\n\t * @param  data [description]\n\t */\n\topen: function(data) {\n\n\t\tvar i;\n\n\t\tif(data.isObj === false) { \n\t\t\t// convert jQuery collection to array to avoid conflicts later\n\t\t\tmfp.items = data.items.toArray();\n\n\t\t\tmfp.index = 0;\n\t\t\tvar items = data.items,\n\t\t\t\titem;\n\t\t\tfor(i = 0; i < items.length; i++) {\n\t\t\t\titem = items[i];\n\t\t\t\tif(item.parsed) {\n\t\t\t\t\titem = item.el[0];\n\t\t\t\t}\n\t\t\t\tif(item === data.el[0]) {\n\t\t\t\t\tmfp.index = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tmfp.items = $.isArray(data.items) ? data.items : [data.items];\n\t\t\tmfp.index = data.index || 0;\n\t\t}\n\n\t\t// if popup is already opened - we just update the content\n\t\tif(mfp.isOpen) {\n\t\t\tmfp.updateItemHTML();\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tmfp.types = []; \n\t\t_wrapClasses = '';\n\t\tif(data.mainEl && data.mainEl.length) {\n\t\t\tmfp.ev = data.mainEl.eq(0);\n\t\t} else {\n\t\t\tmfp.ev = _document;\n\t\t}\n\n\t\tif(data.key) {\n\t\t\tif(!mfp.popupsCache[data.key]) {\n\t\t\t\tmfp.popupsCache[data.key] = {};\n\t\t\t}\n\t\t\tmfp.currTemplate = mfp.popupsCache[data.key];\n\t\t} else {\n\t\t\tmfp.currTemplate = {};\n\t\t}\n\n\n\n\t\tmfp.st = $.extend(true, {}, $.magnificPopup.defaults, data ); \n\t\tmfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;\n\n\t\tif(mfp.st.modal) {\n\t\t\tmfp.st.closeOnContentClick = false;\n\t\t\tmfp.st.closeOnBgClick = false;\n\t\t\tmfp.st.showCloseBtn = false;\n\t\t\tmfp.st.enableEscapeKey = false;\n\t\t}\n\t\t\n\n\t\t// Building markup\n\t\t// main containers are created only once\n\t\tif(!mfp.bgOverlay) {\n\n\t\t\t// Dark overlay\n\t\t\tmfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {\n\t\t\t\tmfp.close();\n\t\t\t});\n\n\t\t\tmfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {\n\t\t\t\tif(mfp._checkIfClose(e.target)) {\n\t\t\t\t\tmfp.close();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmfp.container = _getEl('container', mfp.wrap);\n\t\t}\n\n\t\tmfp.contentContainer = _getEl('content');\n\t\tif(mfp.st.preloader) {\n\t\t\tmfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);\n\t\t}\n\n\n\t\t// Initializing modules\n\t\tvar modules = $.magnificPopup.modules;\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar n = modules[i];\n\t\t\tn = n.charAt(0).toUpperCase() + n.slice(1);\n\t\t\tmfp['init'+n].call(mfp);\n\t\t}\n\t\t_mfpTrigger('BeforeOpen');\n\n\n\t\tif(mfp.st.showCloseBtn) {\n\t\t\t// Close button\n\t\t\tif(!mfp.st.closeBtnInside) {\n\t\t\t\tmfp.wrap.append( _getCloseBtn() );\n\t\t\t} else {\n\t\t\t\t_mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {\n\t\t\t\t\tvalues.close_replaceWith = _getCloseBtn(item.type);\n\t\t\t\t});\n\t\t\t\t_wrapClasses += ' mfp-close-btn-in';\n\t\t\t}\n\t\t}\n\n\t\tif(mfp.st.alignTop) {\n\t\t\t_wrapClasses += ' mfp-align-top';\n\t\t}\n\n\t\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tmfp.wrap.css({\n\t\t\t\toverflow: mfp.st.overflowY,\n\t\t\t\toverflowX: 'hidden',\n\t\t\t\toverflowY: mfp.st.overflowY\n\t\t\t});\n\t\t} else {\n\t\t\tmfp.wrap.css({ \n\t\t\t\ttop: _window.scrollTop(),\n\t\t\t\tposition: 'absolute'\n\t\t\t});\n\t\t}\n\t\tif( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {\n\t\t\tmfp.bgOverlay.css({\n\t\t\t\theight: _document.height(),\n\t\t\t\tposition: 'absolute'\n\t\t\t});\n\t\t}\n\n\t\t\n\n\t\tif(mfp.st.enableEscapeKey) {\n\t\t\t// Close on ESC key\n\t\t\t_document.on('keyup' + EVENT_NS, function(e) {\n\t\t\t\tif(e.keyCode === 27) {\n\t\t\t\t\tmfp.close();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t_window.on('resize' + EVENT_NS, function() {\n\t\t\tmfp.updateSize();\n\t\t});\n\n\n\t\tif(!mfp.st.closeOnContentClick) {\n\t\t\t_wrapClasses += ' mfp-auto-cursor';\n\t\t}\n\t\t\n\t\tif(_wrapClasses)\n\t\t\tmfp.wrap.addClass(_wrapClasses);\n\n\n\t\t// this triggers recalculation of layout, so we get it once to not to trigger twice\n\t\tvar windowHeight = mfp.wH = _window.height();\n\n\t\t\n\t\tvar windowStyles = {};\n\n\t\tif( mfp.fixedContentPos ) {\n            if(mfp._hasScrollBar(windowHeight)){\n                var s = mfp._getScrollbarSize();\n                if(s) {\n                    windowStyles.marginRight = s;\n                }\n            }\n        }\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tif(!mfp.isIE7) {\n\t\t\t\twindowStyles.overflow = 'hidden';\n\t\t\t} else {\n\t\t\t\t// ie7 double-scroll bug\n\t\t\t\t$('body, html').css('overflow', 'hidden');\n\t\t\t}\n\t\t}\n\n\t\t\n\t\t\n\t\tvar classesToadd = mfp.st.mainClass;\n\t\tif(mfp.isIE7) {\n\t\t\tclassesToadd += ' mfp-ie7';\n\t\t}\n\t\tif(classesToadd) {\n\t\t\tmfp._addClassToMFP( classesToadd );\n\t\t}\n\n\t\t// add content\n\t\tmfp.updateItemHTML();\n\n\t\t_mfpTrigger('BuildControls');\n\n\t\t// remove scrollbar, add margin e.t.c\n\t\t$('html').css(windowStyles);\n\t\t\n\t\t// add everything to DOM\n\t\tmfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );\n\n\t\t// Save last focused element\n\t\tmfp._lastFocusedEl = document.activeElement;\n\t\t\n\t\t// Wait for next cycle to allow CSS transition\n\t\tsetTimeout(function() {\n\t\t\t\n\t\t\tif(mfp.content) {\n\t\t\t\tmfp._addClassToMFP(READY_CLASS);\n\t\t\t\tmfp._setFocus();\n\t\t\t} else {\n\t\t\t\t// if content is not defined (not loaded e.t.c) we add class only for BG\n\t\t\t\tmfp.bgOverlay.addClass(READY_CLASS);\n\t\t\t}\n\t\t\t\n\t\t\t// Trap the focus in popup\n\t\t\t_document.on('focusin' + EVENT_NS, mfp._onFocusIn);\n\n\t\t}, 16);\n\n\t\tmfp.isOpen = true;\n\t\tmfp.updateSize(windowHeight);\n\t\t_mfpTrigger(OPEN_EVENT);\n\n\t\treturn data;\n\t},\n\n\t/**\n\t * Closes the popup\n\t */\n\tclose: function() {\n\t\tif(!mfp.isOpen) return;\n\t\t_mfpTrigger(BEFORE_CLOSE_EVENT);\n\n\t\tmfp.isOpen = false;\n\t\t// for CSS3 animation\n\t\tif(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition )  {\n\t\t\tmfp._addClassToMFP(REMOVING_CLASS);\n\t\t\tsetTimeout(function() {\n\t\t\t\tmfp._close();\n\t\t\t}, mfp.st.removalDelay);\n\t\t} else {\n\t\t\tmfp._close();\n\t\t}\n\t},\n\n\t/**\n\t * Helper for close() function\n\t */\n\t_close: function() {\n\t\t_mfpTrigger(CLOSE_EVENT);\n\n\t\tvar classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';\n\n\t\tmfp.bgOverlay.detach();\n\t\tmfp.wrap.detach();\n\t\tmfp.container.empty();\n\n\t\tif(mfp.st.mainClass) {\n\t\t\tclassesToRemove += mfp.st.mainClass + ' ';\n\t\t}\n\n\t\tmfp._removeClassFromMFP(classesToRemove);\n\n\t\tif(mfp.fixedContentPos) {\n\t\t\tvar windowStyles = {marginRight: ''};\n\t\t\tif(mfp.isIE7) {\n\t\t\t\t$('body, html').css('overflow', '');\n\t\t\t} else {\n\t\t\t\twindowStyles.overflow = '';\n\t\t\t}\n\t\t\t$('html').css(windowStyles);\n\t\t}\n\t\t\n\t\t_document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);\n\t\tmfp.ev.off(EVENT_NS);\n\n\t\t// clean up DOM elements that aren't removed\n\t\tmfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');\n\t\tmfp.bgOverlay.attr('class', 'mfp-bg');\n\t\tmfp.container.attr('class', 'mfp-container');\n\n\t\t// remove close button from target element\n\t\tif(mfp.st.showCloseBtn &&\n\t\t(!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {\n\t\t\tif(mfp.currTemplate.closeBtn)\n\t\t\t\tmfp.currTemplate.closeBtn.detach();\n\t\t}\n\n\n\t\tif(mfp.st.autoFocusLast && mfp._lastFocusedEl) {\n\t\t\t$(mfp._lastFocusedEl).focus(); // put tab focus back\n\t\t}\n\t\tmfp.currItem = null;\t\n\t\tmfp.content = null;\n\t\tmfp.currTemplate = null;\n\t\tmfp.prevHeight = 0;\n\n\t\t_mfpTrigger(AFTER_CLOSE_EVENT);\n\t},\n\t\n\tupdateSize: function(winHeight) {\n\n\t\tif(mfp.isIOS) {\n\t\t\t// fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2\n\t\t\tvar zoomLevel = document.documentElement.clientWidth / window.innerWidth;\n\t\t\tvar height = window.innerHeight * zoomLevel;\n\t\t\tmfp.wrap.css('height', height);\n\t\t\tmfp.wH = height;\n\t\t} else {\n\t\t\tmfp.wH = winHeight || _window.height();\n\t\t}\n\t\t// Fixes #84: popup incorrectly positioned with position:relative on body\n\t\tif(!mfp.fixedContentPos) {\n\t\t\tmfp.wrap.css('height', mfp.wH);\n\t\t}\n\n\t\t_mfpTrigger('Resize');\n\n\t},\n\n\t/**\n\t * Set content of popup based on current index\n\t */\n\tupdateItemHTML: function() {\n\t\tvar item = mfp.items[mfp.index];\n\n\t\t// Detach and perform modifications\n\t\tmfp.contentContainer.detach();\n\n\t\tif(mfp.content)\n\t\t\tmfp.content.detach();\n\n\t\tif(!item.parsed) {\n\t\t\titem = mfp.parseEl( mfp.index );\n\t\t}\n\n\t\tvar type = item.type;\n\n\t\t_mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);\n\t\t// BeforeChange event works like so:\n\t\t// _mfpOn('BeforeChange', function(e, prevType, newType) { });\n\n\t\tmfp.currItem = item;\n\n\t\tif(!mfp.currTemplate[type]) {\n\t\t\tvar markup = mfp.st[type] ? mfp.st[type].markup : false;\n\n\t\t\t// allows to modify markup\n\t\t\t_mfpTrigger('FirstMarkupParse', markup);\n\n\t\t\tif(markup) {\n\t\t\t\tmfp.currTemplate[type] = $(markup);\n\t\t\t} else {\n\t\t\t\t// if there is no markup found we just define that template is parsed\n\t\t\t\tmfp.currTemplate[type] = true;\n\t\t\t}\n\t\t}\n\n\t\tif(_prevContentType && _prevContentType !== item.type) {\n\t\t\tmfp.container.removeClass('mfp-'+_prevContentType+'-holder');\n\t\t}\n\n\t\tvar newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);\n\t\tmfp.appendContent(newContent, type);\n\n\t\titem.preloaded = true;\n\n\t\t_mfpTrigger(CHANGE_EVENT, item);\n\t\t_prevContentType = item.type;\n\n\t\t// Append container back after its content changed\n\t\tmfp.container.prepend(mfp.contentContainer);\n\n\t\t_mfpTrigger('AfterChange');\n\t},\n\n\n\t/**\n\t * Set HTML content of popup\n\t */\n\tappendContent: function(newContent, type) {\n\t\tmfp.content = newContent;\n\n\t\tif(newContent) {\n\t\t\tif(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&\n\t\t\t\tmfp.currTemplate[type] === true) {\n\t\t\t\t// if there is no markup, we just append close button element inside\n\t\t\t\tif(!mfp.content.find('.mfp-close').length) {\n\t\t\t\t\tmfp.content.append(_getCloseBtn());\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmfp.content = newContent;\n\t\t\t}\n\t\t} else {\n\t\t\tmfp.content = '';\n\t\t}\n\n\t\t_mfpTrigger(BEFORE_APPEND_EVENT);\n\t\tmfp.container.addClass('mfp-'+type+'-holder');\n\n\t\tmfp.contentContainer.append(mfp.content);\n\t},\n\n\n\t/**\n\t * Creates Magnific Popup data object based on given data\n\t * @param  {int} index Index of item to parse\n\t */\n\tparseEl: function(index) {\n\t\tvar item = mfp.items[index],\n\t\t\ttype;\n\n\t\tif(item.tagName) {\n\t\t\titem = { el: $(item) };\n\t\t} else {\n\t\t\ttype = item.type;\n\t\t\titem = { data: item, src: item.src };\n\t\t}\n\n\t\tif(item.el) {\n\t\t\tvar types = mfp.types;\n\n\t\t\t// check for 'mfp-TYPE' class\n\t\t\tfor(var i = 0; i < types.length; i++) {\n\t\t\t\tif( item.el.hasClass('mfp-'+types[i]) ) {\n\t\t\t\t\ttype = types[i];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\titem.src = item.el.attr('data-mfp-src');\n\t\t\tif(!item.src) {\n\t\t\t\titem.src = item.el.attr('href');\n\t\t\t}\n\t\t}\n\n\t\titem.type = type || mfp.st.type || 'inline';\n\t\titem.index = index;\n\t\titem.parsed = true;\n\t\tmfp.items[index] = item;\n\t\t_mfpTrigger('ElementParse', item);\n\n\t\treturn mfp.items[index];\n\t},\n\n\n\t/**\n\t * Initializes single popup or a group of popups\n\t */\n\taddGroup: function(el, options) {\n\t\tvar eHandler = function(e) {\n\t\t\te.mfpEl = this;\n\t\t\tmfp._openClick(e, el, options);\n\t\t};\n\n\t\tif(!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\tvar eName = 'click.magnificPopup';\n\t\toptions.mainEl = el;\n\n\t\tif(options.items) {\n\t\t\toptions.isObj = true;\n\t\t\tel.off(eName).on(eName, eHandler);\n\t\t} else {\n\t\t\toptions.isObj = false;\n\t\t\tif(options.delegate) {\n\t\t\t\tel.off(eName).on(eName, options.delegate , eHandler);\n\t\t\t} else {\n\t\t\t\toptions.items = el;\n\t\t\t\tel.off(eName).on(eName, eHandler);\n\t\t\t}\n\t\t}\n\t},\n\t_openClick: function(e, el, options) {\n\t\tvar midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;\n\n\n\t\tif(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;\n\n\t\tif(disableOn) {\n\t\t\tif($.isFunction(disableOn)) {\n\t\t\t\tif( !disableOn.call(mfp) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else { // else it's number\n\t\t\t\tif( _window.width() < disableOn ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif(e.type) {\n\t\t\te.preventDefault();\n\n\t\t\t// This will prevent popup from closing if element is inside and popup is already opened\n\t\t\tif(mfp.isOpen) {\n\t\t\t\te.stopPropagation();\n\t\t\t}\n\t\t}\n\n\t\toptions.el = $(e.mfpEl);\n\t\tif(options.delegate) {\n\t\t\toptions.items = el.find(options.delegate);\n\t\t}\n\t\tmfp.open(options);\n\t},\n\n\n\t/**\n\t * Updates text on preloader\n\t */\n\tupdateStatus: function(status, text) {\n\n\t\tif(mfp.preloader) {\n\t\t\tif(_prevStatus !== status) {\n\t\t\t\tmfp.container.removeClass('mfp-s-'+_prevStatus);\n\t\t\t}\n\n\t\t\tif(!text && status === 'loading') {\n\t\t\t\ttext = mfp.st.tLoading;\n\t\t\t}\n\n\t\t\tvar data = {\n\t\t\t\tstatus: status,\n\t\t\t\ttext: text\n\t\t\t};\n\t\t\t// allows to modify status\n\t\t\t_mfpTrigger('UpdateStatus', data);\n\n\t\t\tstatus = data.status;\n\t\t\ttext = data.text;\n\n\t\t\tmfp.preloader.html(text);\n\n\t\t\tmfp.preloader.find('a').on('click', function(e) {\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t});\n\n\t\t\tmfp.container.addClass('mfp-s-'+status);\n\t\t\t_prevStatus = status;\n\t\t}\n\t},\n\n\n\t/*\n\t\t\"Private\" helpers that aren't private at all\n\t */\n\t// Check to close popup or not\n\t// \"target\" is an element that was clicked\n\t_checkIfClose: function(target) {\n\n\t\tif($(target).hasClass(PREVENT_CLOSE_CLASS)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar closeOnContent = mfp.st.closeOnContentClick;\n\t\tvar closeOnBg = mfp.st.closeOnBgClick;\n\n\t\tif(closeOnContent && closeOnBg) {\n\t\t\treturn true;\n\t\t} else {\n\n\t\t\t// We close the popup if click is on close button or on preloader. Or if there is no content.\n\t\t\tif(!mfp.content || $(target).hasClass('mfp-close') || (mfp.preloader && target === mfp.preloader[0]) ) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\t// if click is outside the content\n\t\t\tif(  (target !== mfp.content[0] && !$.contains(mfp.content[0], target))  ) {\n\t\t\t\tif(closeOnBg) {\n\t\t\t\t\t// last check, if the clicked element is in DOM, (in case it's removed onclick)\n\t\t\t\t\tif( $.contains(document, target) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if(closeOnContent) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t}\n\t\treturn false;\n\t},\n\t_addClassToMFP: function(cName) {\n\t\tmfp.bgOverlay.addClass(cName);\n\t\tmfp.wrap.addClass(cName);\n\t},\n\t_removeClassFromMFP: function(cName) {\n\t\tthis.bgOverlay.removeClass(cName);\n\t\tmfp.wrap.removeClass(cName);\n\t},\n\t_hasScrollBar: function(winHeight) {\n\t\treturn (  (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );\n\t},\n\t_setFocus: function() {\n\t\t(mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();\n\t},\n\t_onFocusIn: function(e) {\n\t\tif( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {\n\t\t\tmfp._setFocus();\n\t\t\treturn false;\n\t\t}\n\t},\n\t_parseMarkup: function(template, values, item) {\n\t\tvar arr;\n\t\tif(item.data) {\n\t\t\tvalues = $.extend(item.data, values);\n\t\t}\n\t\t_mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );\n\n\t\t$.each(values, function(key, value) {\n\t\t\tif(value === undefined || value === false) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tarr = key.split('_');\n\t\t\tif(arr.length > 1) {\n\t\t\t\tvar el = template.find(EVENT_NS + '-'+arr[0]);\n\n\t\t\t\tif(el.length > 0) {\n\t\t\t\t\tvar attr = arr[1];\n\t\t\t\t\tif(attr === 'replaceWith') {\n\t\t\t\t\t\tif(el[0] !== value[0]) {\n\t\t\t\t\t\t\tel.replaceWith(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if(attr === 'img') {\n\t\t\t\t\t\tif(el.is('img')) {\n\t\t\t\t\t\t\tel.attr('src', value);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tel.replaceWith( $('<img>').attr('src', value).attr('class', el.attr('class')) );\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tel.attr(arr[1], value);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\ttemplate.find(EVENT_NS + '-'+key).html(value);\n\t\t\t}\n\t\t});\n\t},\n\n\t_getScrollbarSize: function() {\n\t\t// thx David\n\t\tif(mfp.scrollbarSize === undefined) {\n\t\t\tvar scrollDiv = document.createElement(\"div\");\n\t\t\tscrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';\n\t\t\tdocument.body.appendChild(scrollDiv);\n\t\t\tmfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n\t\t\tdocument.body.removeChild(scrollDiv);\n\t\t}\n\t\treturn mfp.scrollbarSize;\n\t}\n\n}; /* MagnificPopup core prototype end */\n\n\n\n\n/**\n * Public static functions\n */\n$.magnificPopup = {\n\tinstance: null,\n\tproto: MagnificPopup.prototype,\n\tmodules: [],\n\n\topen: function(options, index) {\n\t\t_checkInstance();\n\n\t\tif(!options) {\n\t\t\toptions = {};\n\t\t} else {\n\t\t\toptions = $.extend(true, {}, options);\n\t\t}\n\n\t\toptions.isObj = true;\n\t\toptions.index = index || 0;\n\t\treturn this.instance.open(options);\n\t},\n\n\tclose: function() {\n\t\treturn $.magnificPopup.instance && $.magnificPopup.instance.close();\n\t},\n\n\tregisterModule: function(name, module) {\n\t\tif(module.options) {\n\t\t\t$.magnificPopup.defaults[name] = module.options;\n\t\t}\n\t\t$.extend(this.proto, module.proto);\n\t\tthis.modules.push(name);\n\t},\n\n\tdefaults: {\n\n\t\t// Info about options is in docs:\n\t\t// http://dimsemenov.com/plugins/magnific-popup/documentation.html#options\n\n\t\tdisableOn: 0,\n\n\t\tkey: null,\n\n\t\tmidClick: false,\n\n\t\tmainClass: '',\n\n\t\tpreloader: true,\n\n\t\tfocus: '', // CSS selector of input to focus after popup is opened\n\n\t\tcloseOnContentClick: false,\n\n\t\tcloseOnBgClick: true,\n\n\t\tcloseBtnInside: true,\n\n\t\tshowCloseBtn: true,\n\n\t\tenableEscapeKey: true,\n\n\t\tmodal: false,\n\n\t\talignTop: false,\n\n\t\tremovalDelay: 0,\n\n\t\tprependTo: null,\n\n\t\tfixedContentPos: 'auto',\n\n\t\tfixedBgPos: 'auto',\n\n\t\toverflowY: 'auto',\n\n\t\tcloseMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-close\">&#215;</button>',\n\n\t\ttClose: 'Close (Esc)',\n\n\t\ttLoading: 'Loading...',\n\n\t\tautoFocusLast: true\n\n\t}\n};\n\n\n\n$.fn.magnificPopup = function(options) {\n\t_checkInstance();\n\n\tvar jqEl = $(this);\n\n\t// We call some API method of first param is a string\n\tif (typeof options === \"string\" ) {\n\n\t\tif(options === 'open') {\n\t\t\tvar items,\n\t\t\t\titemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,\n\t\t\t\tindex = parseInt(arguments[1], 10) || 0;\n\n\t\t\tif(itemOpts.items) {\n\t\t\t\titems = itemOpts.items[index];\n\t\t\t} else {\n\t\t\t\titems = jqEl;\n\t\t\t\tif(itemOpts.delegate) {\n\t\t\t\t\titems = items.find(itemOpts.delegate);\n\t\t\t\t}\n\t\t\t\titems = items.eq( index );\n\t\t\t}\n\t\t\tmfp._openClick({mfpEl:items}, jqEl, itemOpts);\n\t\t} else {\n\t\t\tif(mfp.isOpen)\n\t\t\t\tmfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));\n\t\t}\n\n\t} else {\n\t\t// clone options obj\n\t\toptions = $.extend(true, {}, options);\n\n\t\t/*\n\t\t * As Zepto doesn't support .data() method for objects\n\t\t * and it works only in normal browsers\n\t\t * we assign \"options\" object directly to the DOM element. FTW!\n\t\t */\n\t\tif(_isJQ) {\n\t\t\tjqEl.data('magnificPopup', options);\n\t\t} else {\n\t\t\tjqEl[0].magnificPopup = options;\n\t\t}\n\n\t\tmfp.addGroup(jqEl, options);\n\n\t}\n\treturn jqEl;\n};\n\n/*>>core*/\n\n/*>>inline*/\n\nvar INLINE_NS = 'inline',\n\t_hiddenClass,\n\t_inlinePlaceholder,\n\t_lastInlineElement,\n\t_putInlineElementsBack = function() {\n\t\tif(_lastInlineElement) {\n\t\t\t_inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();\n\t\t\t_lastInlineElement = null;\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(INLINE_NS, {\n\toptions: {\n\t\thiddenClass: 'hide', // will be appended with `mfp-` prefix\n\t\tmarkup: '',\n\t\ttNotFound: 'Content not found'\n\t},\n\tproto: {\n\n\t\tinitInline: function() {\n\t\t\tmfp.types.push(INLINE_NS);\n\n\t\t\t_mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {\n\t\t\t\t_putInlineElementsBack();\n\t\t\t});\n\t\t},\n\n\t\tgetInline: function(item, template) {\n\n\t\t\t_putInlineElementsBack();\n\n\t\t\tif(item.src) {\n\t\t\t\tvar inlineSt = mfp.st.inline,\n\t\t\t\t\tel = $(item.src);\n\n\t\t\t\tif(el.length) {\n\n\t\t\t\t\t// If target element has parent - we replace it with placeholder and put it back after popup is closed\n\t\t\t\t\tvar parent = el[0].parentNode;\n\t\t\t\t\tif(parent && parent.tagName) {\n\t\t\t\t\t\tif(!_inlinePlaceholder) {\n\t\t\t\t\t\t\t_hiddenClass = inlineSt.hiddenClass;\n\t\t\t\t\t\t\t_inlinePlaceholder = _getEl(_hiddenClass);\n\t\t\t\t\t\t\t_hiddenClass = 'mfp-'+_hiddenClass;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// replace target inline element with placeholder\n\t\t\t\t\t\t_lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);\n\t\t\t\t\t}\n\n\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t} else {\n\t\t\t\t\tmfp.updateStatus('error', inlineSt.tNotFound);\n\t\t\t\t\tel = $('<div>');\n\t\t\t\t}\n\n\t\t\t\titem.inlineElement = el;\n\t\t\t\treturn el;\n\t\t\t}\n\n\t\t\tmfp.updateStatus('ready');\n\t\t\tmfp._parseMarkup(template, {}, item);\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n/*>>inline*/\n\n/*>>ajax*/\nvar AJAX_NS = 'ajax',\n\t_ajaxCur,\n\t_removeAjaxCursor = function() {\n\t\tif(_ajaxCur) {\n\t\t\t$(document.body).removeClass(_ajaxCur);\n\t\t}\n\t},\n\t_destroyAjaxRequest = function() {\n\t\t_removeAjaxCursor();\n\t\tif(mfp.req) {\n\t\t\tmfp.req.abort();\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(AJAX_NS, {\n\n\toptions: {\n\t\tsettings: null,\n\t\tcursor: 'mfp-ajax-cur',\n\t\ttError: '<a href=\"%url%\">The content</a> could not be loaded.'\n\t},\n\n\tproto: {\n\t\tinitAjax: function() {\n\t\t\tmfp.types.push(AJAX_NS);\n\t\t\t_ajaxCur = mfp.st.ajax.cursor;\n\n\t\t\t_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);\n\t\t\t_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);\n\t\t},\n\t\tgetAjax: function(item) {\n\n\t\t\tif(_ajaxCur) {\n\t\t\t\t$(document.body).addClass(_ajaxCur);\n\t\t\t}\n\n\t\t\tmfp.updateStatus('loading');\n\n\t\t\tvar opts = $.extend({\n\t\t\t\turl: item.src,\n\t\t\t\tsuccess: function(data, textStatus, jqXHR) {\n\t\t\t\t\tvar temp = {\n\t\t\t\t\t\tdata:data,\n\t\t\t\t\t\txhr:jqXHR\n\t\t\t\t\t};\n\n\t\t\t\t\t_mfpTrigger('ParseAjax', temp);\n\n\t\t\t\t\tmfp.appendContent( $(temp.data), AJAX_NS );\n\n\t\t\t\t\titem.finished = true;\n\n\t\t\t\t\t_removeAjaxCursor();\n\n\t\t\t\t\tmfp._setFocus();\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tmfp.wrap.addClass(READY_CLASS);\n\t\t\t\t\t}, 16);\n\n\t\t\t\t\tmfp.updateStatus('ready');\n\n\t\t\t\t\t_mfpTrigger('AjaxContentAdded');\n\t\t\t\t},\n\t\t\t\terror: function() {\n\t\t\t\t\t_removeAjaxCursor();\n\t\t\t\t\titem.finished = item.loadError = true;\n\t\t\t\t\tmfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));\n\t\t\t\t}\n\t\t\t}, mfp.st.ajax.settings);\n\n\t\t\tmfp.req = $.ajax(opts);\n\n\t\t\treturn '';\n\t\t}\n\t}\n});\n\n/*>>ajax*/\n\n/*>>image*/\nvar _imgInterval,\n\t_getTitle = function(item) {\n\t\tif(item.data && item.data.title !== undefined)\n\t\t\treturn item.data.title;\n\n\t\tvar src = mfp.st.image.titleSrc;\n\n\t\tif(src) {\n\t\t\tif($.isFunction(src)) {\n\t\t\t\treturn src.call(mfp, item);\n\t\t\t} else if(item.el) {\n\t\t\t\treturn item.el.attr(src) || '';\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t};\n\n$.magnificPopup.registerModule('image', {\n\n\toptions: {\n\t\tmarkup: '<div class=\"mfp-figure\">'+\n\t\t\t\t\t'<div class=\"mfp-close\"></div>'+\n\t\t\t\t\t'<figure>'+\n\t\t\t\t\t\t'<div class=\"mfp-img\"></div>'+\n\t\t\t\t\t\t'<figcaption>'+\n\t\t\t\t\t\t\t'<div class=\"mfp-bottom-bar\">'+\n\t\t\t\t\t\t\t\t'<div class=\"mfp-title\"></div>'+\n\t\t\t\t\t\t\t\t'<div class=\"mfp-counter\"></div>'+\n\t\t\t\t\t\t\t'</div>'+\n\t\t\t\t\t\t'</figcaption>'+\n\t\t\t\t\t'</figure>'+\n\t\t\t\t'</div>',\n\t\tcursor: 'mfp-zoom-out-cur',\n\t\ttitleSrc: 'title',\n\t\tverticalFit: true,\n\t\ttError: '<a href=\"%url%\">The image</a> could not be loaded.'\n\t},\n\n\tproto: {\n\t\tinitImage: function() {\n\t\t\tvar imgSt = mfp.st.image,\n\t\t\t\tns = '.image';\n\n\t\t\tmfp.types.push('image');\n\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\n\t\t\t\tif(mfp.currItem.type === 'image' && imgSt.cursor) {\n\t\t\t\t\t$(document.body).addClass(imgSt.cursor);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\tif(imgSt.cursor) {\n\t\t\t\t\t$(document.body).removeClass(imgSt.cursor);\n\t\t\t\t}\n\t\t\t\t_window.off('resize' + EVENT_NS);\n\t\t\t});\n\n\t\t\t_mfpOn('Resize'+ns, mfp.resizeImage);\n\t\t\tif(mfp.isLowIE) {\n\t\t\t\t_mfpOn('AfterChange', mfp.resizeImage);\n\t\t\t}\n\t\t},\n\t\tresizeImage: function() {\n\t\t\tvar item = mfp.currItem;\n\t\t\tif(!item || !item.img) return;\n\n\t\t\tif(mfp.st.image.verticalFit) {\n\t\t\t\tvar decr = 0;\n\t\t\t\t// fix box-sizing in ie7/8\n\t\t\t\tif(mfp.isLowIE) {\n\t\t\t\t\tdecr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);\n\t\t\t\t}\n\t\t\t\titem.img.css('max-height', mfp.wH-decr);\n\t\t\t}\n\t\t},\n\t\t_onImageHasSize: function(item) {\n\t\t\tif(item.img) {\n\n\t\t\t\titem.hasSize = true;\n\n\t\t\t\tif(_imgInterval) {\n\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t}\n\n\t\t\t\titem.isCheckingImgSize = false;\n\n\t\t\t\t_mfpTrigger('ImageHasSize', item);\n\n\t\t\t\tif(item.imgHidden) {\n\t\t\t\t\tif(mfp.content)\n\t\t\t\t\t\tmfp.content.removeClass('mfp-loading');\n\n\t\t\t\t\titem.imgHidden = false;\n\t\t\t\t}\n\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Function that loops until the image has size to display elements that rely on it asap\n\t\t */\n\t\tfindImageSize: function(item) {\n\n\t\t\tvar counter = 0,\n\t\t\t\timg = item.img[0],\n\t\t\t\tmfpSetInterval = function(delay) {\n\n\t\t\t\t\tif(_imgInterval) {\n\t\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t\t}\n\t\t\t\t\t// decelerating interval that checks for size of an image\n\t\t\t\t\t_imgInterval = setInterval(function() {\n\t\t\t\t\t\tif(img.naturalWidth > 0) {\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif(counter > 200) {\n\t\t\t\t\t\t\tclearInterval(_imgInterval);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcounter++;\n\t\t\t\t\t\tif(counter === 3) {\n\t\t\t\t\t\t\tmfpSetInterval(10);\n\t\t\t\t\t\t} else if(counter === 40) {\n\t\t\t\t\t\t\tmfpSetInterval(50);\n\t\t\t\t\t\t} else if(counter === 100) {\n\t\t\t\t\t\t\tmfpSetInterval(500);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, delay);\n\t\t\t\t};\n\n\t\t\tmfpSetInterval(1);\n\t\t},\n\n\t\tgetImage: function(item, template) {\n\n\t\t\tvar guard = 0,\n\n\t\t\t\t// image load complete handler\n\t\t\t\tonLoadComplete = function() {\n\t\t\t\t\tif(item) {\n\t\t\t\t\t\tif (item.img[0].complete) {\n\t\t\t\t\t\t\titem.img.off('.mfploader');\n\n\t\t\t\t\t\t\tif(item === mfp.currItem){\n\t\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\n\t\t\t\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\t\t\titem.loaded = true;\n\n\t\t\t\t\t\t\t_mfpTrigger('ImageLoadComplete');\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t// if image complete check fails 200 times (20 sec), we assume that there was an error.\n\t\t\t\t\t\t\tguard++;\n\t\t\t\t\t\t\tif(guard < 200) {\n\t\t\t\t\t\t\t\tsetTimeout(onLoadComplete,100);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tonLoadError();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\t// image error handler\n\t\t\t\tonLoadError = function() {\n\t\t\t\t\tif(item) {\n\t\t\t\t\t\titem.img.off('.mfploader');\n\t\t\t\t\t\tif(item === mfp.currItem){\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\n\t\t\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\t\titem.loaded = true;\n\t\t\t\t\t\titem.loadError = true;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\timgSt = mfp.st.image;\n\n\n\t\t\tvar el = template.find('.mfp-img');\n\t\t\tif(el.length) {\n\t\t\t\tvar img = document.createElement('img');\n\t\t\t\timg.className = 'mfp-img';\n\t\t\t\tif(item.el && item.el.find('img').length) {\n\t\t\t\t\timg.alt = item.el.find('img').attr('alt');\n\t\t\t\t}\n\t\t\t\titem.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);\n\t\t\t\timg.src = item.src;\n\n\t\t\t\t// without clone() \"error\" event is not firing when IMG is replaced by new IMG\n\t\t\t\t// TODO: find a way to avoid such cloning\n\t\t\t\tif(el.is('img')) {\n\t\t\t\t\titem.img = item.img.clone();\n\t\t\t\t}\n\n\t\t\t\timg = item.img[0];\n\t\t\t\tif(img.naturalWidth > 0) {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t} else if(!img.width) {\n\t\t\t\t\titem.hasSize = false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tmfp._parseMarkup(template, {\n\t\t\t\ttitle: _getTitle(item),\n\t\t\t\timg_replaceWith: item.img\n\t\t\t}, item);\n\n\t\t\tmfp.resizeImage();\n\n\t\t\tif(item.hasSize) {\n\t\t\t\tif(_imgInterval) clearInterval(_imgInterval);\n\n\t\t\t\tif(item.loadError) {\n\t\t\t\t\ttemplate.addClass('mfp-loading');\n\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\n\t\t\t\t} else {\n\t\t\t\t\ttemplate.removeClass('mfp-loading');\n\t\t\t\t\tmfp.updateStatus('ready');\n\t\t\t\t}\n\t\t\t\treturn template;\n\t\t\t}\n\n\t\t\tmfp.updateStatus('loading');\n\t\t\titem.loading = true;\n\n\t\t\tif(!item.hasSize) {\n\t\t\t\titem.imgHidden = true;\n\t\t\t\ttemplate.addClass('mfp-loading');\n\t\t\t\tmfp.findImageSize(item);\n\t\t\t}\n\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n/*>>image*/\n\n/*>>zoom*/\nvar hasMozTransform,\n\tgetHasMozTransform = function() {\n\t\tif(hasMozTransform === undefined) {\n\t\t\thasMozTransform = document.createElement('p').style.MozTransform !== undefined;\n\t\t}\n\t\treturn hasMozTransform;\n\t};\n\n$.magnificPopup.registerModule('zoom', {\n\n\toptions: {\n\t\tenabled: false,\n\t\teasing: 'ease-in-out',\n\t\tduration: 300,\n\t\topener: function(element) {\n\t\t\treturn element.is('img') ? element : element.find('img');\n\t\t}\n\t},\n\n\tproto: {\n\n\t\tinitZoom: function() {\n\t\t\tvar zoomSt = mfp.st.zoom,\n\t\t\t\tns = '.zoom',\n\t\t\t\timage;\n\n\t\t\tif(!zoomSt.enabled || !mfp.supportsTransition) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar duration = zoomSt.duration,\n\t\t\t\tgetElToAnimate = function(image) {\n\t\t\t\t\tvar newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),\n\t\t\t\t\t\ttransition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,\n\t\t\t\t\t\tcssObj = {\n\t\t\t\t\t\t\tposition: 'fixed',\n\t\t\t\t\t\t\tzIndex: 9999,\n\t\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\t\t'-webkit-backface-visibility': 'hidden'\n\t\t\t\t\t\t},\n\t\t\t\t\t\tt = 'transition';\n\n\t\t\t\t\tcssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;\n\n\t\t\t\t\tnewImg.css(cssObj);\n\t\t\t\t\treturn newImg;\n\t\t\t\t},\n\t\t\t\tshowMainContent = function() {\n\t\t\t\t\tmfp.content.css('visibility', 'visible');\n\t\t\t\t},\n\t\t\t\topenTimeout,\n\t\t\t\tanimatedImg;\n\n\t\t\t_mfpOn('BuildControls'+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\n\t\t\t\t\tclearTimeout(openTimeout);\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\n\n\t\t\t\t\t// Basically, all code below does is clones existing image, puts in on top of the current one and animated it\n\n\t\t\t\t\timage = mfp._getItemToZoom();\n\n\t\t\t\t\tif(!image) {\n\t\t\t\t\t\tshowMainContent();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tanimatedImg = getElToAnimate(image);\n\n\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\n\n\t\t\t\t\tmfp.wrap.append(animatedImg);\n\n\t\t\t\t\topenTimeout = setTimeout(function() {\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset( true ) );\n\t\t\t\t\t\topenTimeout = setTimeout(function() {\n\n\t\t\t\t\t\t\tshowMainContent();\n\n\t\t\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\t\t\tanimatedImg.remove();\n\t\t\t\t\t\t\t\timage = animatedImg = null;\n\t\t\t\t\t\t\t\t_mfpTrigger('ZoomAnimationEnded');\n\t\t\t\t\t\t\t}, 16); // avoid blink when switching images\n\n\t\t\t\t\t\t}, duration); // this timeout equals animation duration\n\n\t\t\t\t\t}, 16); // by adding this timeout we avoid short glitch at the beginning of animation\n\n\n\t\t\t\t\t// Lots of timeouts...\n\t\t\t\t}\n\t\t\t});\n\t\t\t_mfpOn(BEFORE_CLOSE_EVENT+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\n\t\t\t\t\tclearTimeout(openTimeout);\n\n\t\t\t\t\tmfp.st.removalDelay = duration;\n\n\t\t\t\t\tif(!image) {\n\t\t\t\t\t\timage = mfp._getItemToZoom();\n\t\t\t\t\t\tif(!image) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimatedImg = getElToAnimate(image);\n\t\t\t\t\t}\n\n\t\t\t\t\tanimatedImg.css( mfp._getOffset(true) );\n\t\t\t\t\tmfp.wrap.append(animatedImg);\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\n\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\n\t\t\t\t\t}, 16);\n\t\t\t\t}\n\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\tif(mfp._allowZoom()) {\n\t\t\t\t\tshowMainContent();\n\t\t\t\t\tif(animatedImg) {\n\t\t\t\t\t\tanimatedImg.remove();\n\t\t\t\t\t}\n\t\t\t\t\timage = null;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\t_allowZoom: function() {\n\t\t\treturn mfp.currItem.type === 'image';\n\t\t},\n\n\t\t_getItemToZoom: function() {\n\t\t\tif(mfp.currItem.hasSize) {\n\t\t\t\treturn mfp.currItem.img;\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Get element postion relative to viewport\n\t\t_getOffset: function(isLarge) {\n\t\t\tvar el;\n\t\t\tif(isLarge) {\n\t\t\t\tel = mfp.currItem.img;\n\t\t\t} else {\n\t\t\t\tel = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);\n\t\t\t}\n\n\t\t\tvar offset = el.offset();\n\t\t\tvar paddingTop = parseInt(el.css('padding-top'),10);\n\t\t\tvar paddingBottom = parseInt(el.css('padding-bottom'),10);\n\t\t\toffset.top -= ( $(window).scrollTop() - paddingTop );\n\n\n\t\t\t/*\n\n\t\t\tAnimating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.\n\n\t\t\t */\n\t\t\tvar obj = {\n\t\t\t\twidth: el.width(),\n\t\t\t\t// fix Zepto height+padding issue\n\t\t\t\theight: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop\n\t\t\t};\n\n\t\t\t// I hate to do this, but there is no another option\n\t\t\tif( getHasMozTransform() ) {\n\t\t\t\tobj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';\n\t\t\t} else {\n\t\t\t\tobj.left = offset.left;\n\t\t\t\tobj.top = offset.top;\n\t\t\t}\n\t\t\treturn obj;\n\t\t}\n\n\t}\n});\n\n\n\n/*>>zoom*/\n\n/*>>iframe*/\n\nvar IFRAME_NS = 'iframe',\n\t_emptyPage = '//about:blank',\n\n\t_fixIframeBugs = function(isShowing) {\n\t\tif(mfp.currTemplate[IFRAME_NS]) {\n\t\t\tvar el = mfp.currTemplate[IFRAME_NS].find('iframe');\n\t\t\tif(el.length) {\n\t\t\t\t// reset src after the popup is closed to avoid \"video keeps playing after popup is closed\" bug\n\t\t\t\tif(!isShowing) {\n\t\t\t\t\tel[0].src = _emptyPage;\n\t\t\t\t}\n\n\t\t\t\t// IE8 black screen bug fix\n\t\t\t\tif(mfp.isIE8) {\n\t\t\t\t\tel.css('display', isShowing ? 'block' : 'none');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n$.magnificPopup.registerModule(IFRAME_NS, {\n\n\toptions: {\n\t\tmarkup: '<div class=\"mfp-iframe-scaler\">'+\n\t\t\t\t\t'<div class=\"mfp-close\"></div>'+\n\t\t\t\t\t'<iframe class=\"mfp-iframe\" src=\"//about:blank\" frameborder=\"0\" allowfullscreen></iframe>'+\n\t\t\t\t'</div>',\n\n\t\tsrcAction: 'iframe_src',\n\n\t\t// we don't care and support only one default type of URL by default\n\t\tpatterns: {\n\t\t\tyoutube: {\n\t\t\t\tindex: 'youtube.com',\n\t\t\t\tid: 'v=',\n\t\t\t\tsrc: '//www.youtube.com/embed/%id%?autoplay=1'\n\t\t\t},\n\t\t\tvimeo: {\n\t\t\t\tindex: 'vimeo.com/',\n\t\t\t\tid: '/',\n\t\t\t\tsrc: '//player.vimeo.com/video/%id%?autoplay=1'\n\t\t\t},\n\t\t\tgmaps: {\n\t\t\t\tindex: '//maps.google.',\n\t\t\t\tsrc: '%id%&output=embed'\n\t\t\t}\n\t\t}\n\t},\n\n\tproto: {\n\t\tinitIframe: function() {\n\t\t\tmfp.types.push(IFRAME_NS);\n\n\t\t\t_mfpOn('BeforeChange', function(e, prevType, newType) {\n\t\t\t\tif(prevType !== newType) {\n\t\t\t\t\tif(prevType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(); // iframe if removed\n\t\t\t\t\t} else if(newType === IFRAME_NS) {\n\t\t\t\t\t\t_fixIframeBugs(true); // iframe is showing\n\t\t\t\t\t}\n\t\t\t\t}// else {\n\t\t\t\t\t// iframe source is switched, don't do anything\n\t\t\t\t//}\n\t\t\t});\n\n\t\t\t_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {\n\t\t\t\t_fixIframeBugs();\n\t\t\t});\n\t\t},\n\n\t\tgetIframe: function(item, template) {\n\t\t\tvar embedSrc = item.src;\n\t\t\tvar iframeSt = mfp.st.iframe;\n\n\t\t\t$.each(iframeSt.patterns, function() {\n\t\t\t\tif(embedSrc.indexOf( this.index ) > -1) {\n\t\t\t\t\tif(this.id) {\n\t\t\t\t\t\tif(typeof this.id === 'string') {\n\t\t\t\t\t\t\tembedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tembedSrc = this.id.call( this, embedSrc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tembedSrc = this.src.replace('%id%', embedSrc );\n\t\t\t\t\treturn false; // break;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tvar dataObj = {};\n\t\t\tif(iframeSt.srcAction) {\n\t\t\t\tdataObj[iframeSt.srcAction] = embedSrc;\n\t\t\t}\n\t\t\tmfp._parseMarkup(template, dataObj, item);\n\n\t\t\tmfp.updateStatus('ready');\n\n\t\t\treturn template;\n\t\t}\n\t}\n});\n\n\n\n/*>>iframe*/\n\n/*>>gallery*/\n/**\n * Get looped index depending on number of slides\n */\nvar _getLoopedId = function(index) {\n\t\tvar numSlides = mfp.items.length;\n\t\tif(index > numSlides - 1) {\n\t\t\treturn index - numSlides;\n\t\t} else  if(index < 0) {\n\t\t\treturn numSlides + index;\n\t\t}\n\t\treturn index;\n\t},\n\t_replaceCurrTotal = function(text, curr, total) {\n\t\treturn text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);\n\t};\n\n$.magnificPopup.registerModule('gallery', {\n\n\toptions: {\n\t\tenabled: false,\n\t\tarrowMarkup: '<button title=\"%title%\" type=\"button\" class=\"mfp-arrow mfp-arrow-%dir%\"></button>',\n\t\tpreload: [0,2],\n\t\tnavigateByImgClick: true,\n\t\tarrows: true,\n\n\t\ttPrev: 'Previous (Left arrow key)',\n\t\ttNext: 'Next (Right arrow key)',\n\t\ttCounter: '%curr% of %total%'\n\t},\n\n\tproto: {\n\t\tinitGallery: function() {\n\n\t\t\tvar gSt = mfp.st.gallery,\n\t\t\t\tns = '.mfp-gallery';\n\n\t\t\tmfp.direction = true; // true - next, false - prev\n\n\t\t\tif(!gSt || !gSt.enabled ) return false;\n\n\t\t\t_wrapClasses += ' mfp-gallery';\n\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\n\n\t\t\t\tif(gSt.navigateByImgClick) {\n\t\t\t\t\tmfp.wrap.on('click'+ns, '.mfp-img', function() {\n\t\t\t\t\t\tif(mfp.items.length > 1) {\n\t\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t_document.on('keydown'+ns, function(e) {\n\t\t\t\t\tif (e.keyCode === 37) {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t} else if (e.keyCode === 39) {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\t_mfpOn('UpdateStatus'+ns, function(e, data) {\n\t\t\t\tif(data.text) {\n\t\t\t\t\tdata.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {\n\t\t\t\tvar l = mfp.items.length;\n\t\t\t\tvalues.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';\n\t\t\t});\n\n\t\t\t_mfpOn('BuildControls' + ns, function() {\n\t\t\t\tif(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {\n\t\t\t\t\tvar markup = gSt.arrowMarkup,\n\t\t\t\t\t\tarrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),\n\t\t\t\t\t\tarrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);\n\n\t\t\t\t\tarrowLeft.click(function() {\n\t\t\t\t\t\tmfp.prev();\n\t\t\t\t\t});\n\t\t\t\t\tarrowRight.click(function() {\n\t\t\t\t\t\tmfp.next();\n\t\t\t\t\t});\n\n\t\t\t\t\tmfp.container.append(arrowLeft.add(arrowRight));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t_mfpOn(CHANGE_EVENT+ns, function() {\n\t\t\t\tif(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);\n\n\t\t\t\tmfp._preloadTimeout = setTimeout(function() {\n\t\t\t\t\tmfp.preloadNearbyImages();\n\t\t\t\t\tmfp._preloadTimeout = null;\n\t\t\t\t}, 16);\n\t\t\t});\n\n\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\n\t\t\t\t_document.off(ns);\n\t\t\t\tmfp.wrap.off('click'+ns);\n\t\t\t\tmfp.arrowRight = mfp.arrowLeft = null;\n\t\t\t});\n\n\t\t},\n\t\tnext: function() {\n\t\t\tmfp.direction = true;\n\t\t\tmfp.index = _getLoopedId(mfp.index + 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tprev: function() {\n\t\t\tmfp.direction = false;\n\t\t\tmfp.index = _getLoopedId(mfp.index - 1);\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tgoTo: function(newIndex) {\n\t\t\tmfp.direction = (newIndex >= mfp.index);\n\t\t\tmfp.index = newIndex;\n\t\t\tmfp.updateItemHTML();\n\t\t},\n\t\tpreloadNearbyImages: function() {\n\t\t\tvar p = mfp.st.gallery.preload,\n\t\t\t\tpreloadBefore = Math.min(p[0], mfp.items.length),\n\t\t\t\tpreloadAfter = Math.min(p[1], mfp.items.length),\n\t\t\t\ti;\n\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index+i);\n\t\t\t}\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {\n\t\t\t\tmfp._preloadItem(mfp.index-i);\n\t\t\t}\n\t\t},\n\t\t_preloadItem: function(index) {\n\t\t\tindex = _getLoopedId(index);\n\n\t\t\tif(mfp.items[index].preloaded) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar item = mfp.items[index];\n\t\t\tif(!item.parsed) {\n\t\t\t\titem = mfp.parseEl( index );\n\t\t\t}\n\n\t\t\t_mfpTrigger('LazyLoad', item);\n\n\t\t\tif(item.type === 'image') {\n\t\t\t\titem.img = $('<img class=\"mfp-img\" />').on('load.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t}).on('error.mfploader', function() {\n\t\t\t\t\titem.hasSize = true;\n\t\t\t\t\titem.loadError = true;\n\t\t\t\t\t_mfpTrigger('LazyLoadError', item);\n\t\t\t\t}).attr('src', item.src);\n\t\t\t}\n\n\n\t\t\titem.preloaded = true;\n\t\t}\n\t}\n});\n\n/*>>gallery*/\n\n/*>>retina*/\n\nvar RETINA_NS = 'retina';\n\n$.magnificPopup.registerModule(RETINA_NS, {\n\toptions: {\n\t\treplaceSrc: function(item) {\n\t\t\treturn item.src.replace(/\\.\\w+$/, function(m) { return '@2x' + m; });\n\t\t},\n\t\tratio: 1 // Function or number.  Set to 1 to disable.\n\t},\n\tproto: {\n\t\tinitRetina: function() {\n\t\t\tif(window.devicePixelRatio > 1) {\n\n\t\t\t\tvar st = mfp.st.retina,\n\t\t\t\t\tratio = st.ratio;\n\n\t\t\t\tratio = !isNaN(ratio) ? ratio : ratio();\n\n\t\t\t\tif(ratio > 1) {\n\t\t\t\t\t_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.img.css({\n\t\t\t\t\t\t\t'max-width': item.img[0].naturalWidth / ratio,\n\t\t\t\t\t\t\t'width': '100%'\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t\t_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {\n\t\t\t\t\t\titem.src = st.replaceSrc(item, ratio);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n});\n\n/*>>retina*/\n _checkInstance(); }));", "/**********************\n   Velocity UI Pack\n**********************/\n\n/* VelocityJS.org UI Pack (5.0.4). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License. Portions copyright Daniel Eden, Christian Pucci. */\n\n;(function (factory) {\n    /* CommonJS module. */\n    if (typeof require === \"function\" && typeof exports === \"object\" ) {\n        module.exports = factory();\n    /* AMD module. */\n    } else if (typeof define === \"function\" && define.amd) {\n        define([ \"velocity\" ], factory);\n    /* Browser globals. */\n    } else {\n        factory();\n    }\n}(function() {\nreturn function (global, window, document, undefined) {\n\n    /*************\n        Checks\n    *************/\n\n    if (!global.Velocity || !global.Velocity.Utilities) {\n        window.console && console.log(\"Velocity UI Pack: Velocity must be loaded first. Aborting.\");\n        return;\n    } else {\n        var Velocity = global.Velocity,\n            $ = Velocity.Utilities;\n    }\n\n    var velocityVersion = Velocity.version,\n        requiredVersion = { major: 1, minor: 1, patch: 0 };\n\n    function greaterSemver (primary, secondary) {\n        var versionInts = [];\n\n        if (!primary || !secondary) { return false; }\n\n        $.each([ primary, secondary ], function(i, versionObject) {\n            var versionIntsComponents = [];\n\n            $.each(versionObject, function(component, value) {\n                while (value.toString().length < 5) {\n                    value = \"0\" + value;\n                }\n                versionIntsComponents.push(value);\n            });\n\n            versionInts.push(versionIntsComponents.join(\"\"))\n        });\n\n        return (parseFloat(versionInts[0]) > parseFloat(versionInts[1]));\n    }\n\n    if (greaterSemver(requiredVersion, velocityVersion)){\n        var abortError = \"Velocity UI Pack: You need to update Velocity (jquery.velocity.js) to a newer version. Visit http://github.com/julianshapiro/velocity.\";\n        alert(abortError);\n        throw new Error(abortError);\n    }\n\n    /************************\n       Effect Registration\n    ************************/\n\n    /* Note: RegisterUI is a legacy name. */\n    Velocity.RegisterEffect = Velocity.RegisterUI = function (effectName, properties) {\n        /* Animate the expansion/contraction of the elements' parent's height for In/Out effects. */\n        function animateParentHeight (elements, direction, totalDuration, stagger) {\n            var totalHeightDelta = 0,\n                parentNode;\n\n            /* Sum the total height (including padding and margin) of all targeted elements. */\n            $.each(elements.nodeType ? [ elements ] : elements, function(i, element) {\n                if (stagger) {\n                    /* Increase the totalDuration by the successive delay amounts produced by the stagger option. */\n                    totalDuration += i * stagger;\n                }\n\n                parentNode = element.parentNode;\n\n                $.each([ \"height\", \"paddingTop\", \"paddingBottom\", \"marginTop\", \"marginBottom\"], function(i, property) {\n                    totalHeightDelta += parseFloat(Velocity.CSS.getPropertyValue(element, property));\n                });\n            });\n\n            /* Animate the parent element's height adjustment (with a varying duration multiplier for aesthetic benefits). */\n            Velocity.animate(\n                parentNode,\n                { height: (direction === \"In\" ? \"+\" : \"-\") + \"=\" + totalHeightDelta },\n                { queue: false, easing: \"ease-in-out\", duration: totalDuration * (direction === \"In\" ? 0.6 : 1) }\n            );\n        }\n\n        /* Register a custom redirect for each effect. */\n        Velocity.Redirects[effectName] = function (element, redirectOptions, elementsIndex, elementsSize, elements, promiseData) {\n            var finalElement = (elementsIndex === elementsSize - 1);\n\n            if (typeof properties.defaultDuration === \"function\") {\n                properties.defaultDuration = properties.defaultDuration.call(elements, elements);\n            } else {\n                properties.defaultDuration = parseFloat(properties.defaultDuration);\n            }\n\n            /* Iterate through each effect's call array. */\n            for (var callIndex = 0; callIndex < properties.calls.length; callIndex++) {\n                var call = properties.calls[callIndex],\n                    propertyMap = call[0],\n                    redirectDuration = (redirectOptions.duration || properties.defaultDuration || 1000),\n                    durationPercentage = call[1],\n                    callOptions = call[2] || {},\n                    opts = {};\n\n                /* Assign the whitelisted per-call options. */\n                opts.duration = redirectDuration * (durationPercentage || 1);\n                opts.queue = redirectOptions.queue || \"\";\n                opts.easing = callOptions.easing || \"ease\";\n                opts.delay = parseFloat(callOptions.delay) || 0;\n                opts._cacheValues = callOptions._cacheValues || true;\n\n                /* Special processing for the first effect call. */\n                if (callIndex === 0) {\n                    /* If a delay was passed into the redirect, combine it with the first call's delay. */\n                    opts.delay += (parseFloat(redirectOptions.delay) || 0);\n\n                    if (elementsIndex === 0) {\n                        opts.begin = function() {\n                            /* Only trigger a begin callback on the first effect call with the first element in the set. */\n                            redirectOptions.begin && redirectOptions.begin.call(elements, elements);\n\n                            var direction = effectName.match(/(In|Out)$/);\n\n                            /* Make \"in\" transitioning elements invisible immediately so that there's no FOUC between now\n                               and the first RAF tick. */\n                            if ((direction && direction[0] === \"In\") && propertyMap.opacity !== undefined) {\n                                $.each(elements.nodeType ? [ elements ] : elements, function(i, element) {\n                                    Velocity.CSS.setPropertyValue(element, \"opacity\", 0);\n                                });\n                            }\n\n                            /* Only trigger animateParentHeight() if we're using an In/Out transition. */\n                            if (redirectOptions.animateParentHeight && direction) {\n                                animateParentHeight(elements, direction[0], redirectDuration + opts.delay, redirectOptions.stagger);\n                            }\n                        }\n                    }\n\n                    /* If the user isn't overriding the display option, default to \"auto\" for \"In\"-suffixed transitions. */\n                    if (redirectOptions.display !== null) {\n                        if (redirectOptions.display !== undefined && redirectOptions.display !== \"none\") {\n                            opts.display = redirectOptions.display;\n                        } else if (/In$/.test(effectName)) {\n                            /* Inline elements cannot be subjected to transforms, so we switch them to inline-block. */\n                            var defaultDisplay = Velocity.CSS.Values.getDisplayType(element);\n                            opts.display = (defaultDisplay === \"inline\") ? \"inline-block\" : defaultDisplay;\n                        }\n                    }\n\n                    if (redirectOptions.visibility && redirectOptions.visibility !== \"hidden\") {\n                        opts.visibility = redirectOptions.visibility;\n                    }\n                }\n\n                /* Special processing for the last effect call. */\n                if (callIndex === properties.calls.length - 1) {\n                    /* Append promise resolving onto the user's redirect callback. */\n                    function injectFinalCallbacks () {\n                        if ((redirectOptions.display === undefined || redirectOptions.display === \"none\") && /Out$/.test(effectName)) {\n                            $.each(elements.nodeType ? [ elements ] : elements, function(i, element) {\n                                Velocity.CSS.setPropertyValue(element, \"display\", \"none\");\n                            });\n                        }\n\n                        redirectOptions.complete && redirectOptions.complete.call(elements, elements);\n\n                        if (promiseData) {\n                            promiseData.resolver(elements || element);\n                        }\n                    }\n\n                    opts.complete = function() {\n                        if (properties.reset) {\n                            for (var resetProperty in properties.reset) {\n                                var resetValue = properties.reset[resetProperty];\n\n                                /* Format each non-array value in the reset property map to [ value, value ] so that changes apply\n                                   immediately and DOM querying is avoided (via forcefeeding). */\n                                /* Note: Don't forcefeed hooks, otherwise their hook roots will be defaulted to their null values. */\n                                if (Velocity.CSS.Hooks.registered[resetProperty] === undefined && (typeof resetValue === \"string\" || typeof resetValue === \"number\")) {\n                                    properties.reset[resetProperty] = [ properties.reset[resetProperty], properties.reset[resetProperty] ];\n                                }\n                            }\n\n                            /* So that the reset values are applied instantly upon the next rAF tick, use a zero duration and parallel queueing. */\n                            var resetOptions = { duration: 0, queue: false };\n\n                            /* Since the reset option uses up the complete callback, we trigger the user's complete callback at the end of ours. */\n                            if (finalElement) {\n                                resetOptions.complete = injectFinalCallbacks;\n                            }\n\n                            Velocity.animate(element, properties.reset, resetOptions);\n                        /* Only trigger the user's complete callback on the last effect call with the last element in the set. */\n                        } else if (finalElement) {\n                            injectFinalCallbacks();\n                        }\n                    };\n\n                    if (redirectOptions.visibility === \"hidden\") {\n                        opts.visibility = redirectOptions.visibility;\n                    }\n                }\n\n                Velocity.animate(element, propertyMap, opts);\n            }\n        };\n\n        /* Return the Velocity object so that RegisterUI calls can be chained. */\n        return Velocity;\n    };\n\n    /*********************\n       Packaged Effects\n    *********************/\n\n    /* Externalize the packagedEffects data so that they can optionally be modified and re-registered. */\n    /* Support: <=IE8: Callouts will have no effect, and transitions will simply fade in/out. IE9/Android 2.3: Most effects are fully supported, the rest fade in/out. All other browsers: full support. */\n    Velocity.RegisterEffect.packagedEffects =\n        {\n            /* Animate.css */\n            \"callout.bounce\": {\n                defaultDuration: 550,\n                calls: [\n                    [ { translateY: -30 }, 0.25 ],\n                    [ { translateY: 0 }, 0.125 ],\n                    [ { translateY: -15 }, 0.125 ],\n                    [ { translateY: 0 }, 0.25 ]\n                ]\n            },\n            /* Animate.css */\n            \"callout.shake\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { translateX: -11 }, 0.125 ],\n                    [ { translateX: 11 }, 0.125 ],\n                    [ { translateX: -11 }, 0.125 ],\n                    [ { translateX: 11 }, 0.125 ],\n                    [ { translateX: -11 }, 0.125 ],\n                    [ { translateX: 11 }, 0.125 ],\n                    [ { translateX: -11 }, 0.125 ],\n                    [ { translateX: 0 }, 0.125 ]\n                ]\n            },\n            /* Animate.css */\n            \"callout.flash\": {\n                defaultDuration: 1100,\n                calls: [\n                    [ { opacity: [ 0, \"easeInOutQuad\", 1 ] }, 0.25 ],\n                    [ { opacity: [ 1, \"easeInOutQuad\" ] }, 0.25 ],\n                    [ { opacity: [ 0, \"easeInOutQuad\" ] }, 0.25 ],\n                    [ { opacity: [ 1, \"easeInOutQuad\" ] }, 0.25 ]\n                ]\n            },\n            /* Animate.css */\n            \"callout.pulse\": {\n                defaultDuration: 825,\n                calls: [\n                    [ { scaleX: 1.1, scaleY: 1.1 }, 0.50, { easing: \"easeInExpo\" } ],\n                    [ { scaleX: 1, scaleY: 1 }, 0.50 ]\n                ]\n            },\n            /* Animate.css */\n            \"callout.swing\": {\n                defaultDuration: 950,\n                calls: [\n                    [ { rotateZ: 15 }, 0.20 ],\n                    [ { rotateZ: -10 }, 0.20 ],\n                    [ { rotateZ: 5 }, 0.20 ],\n                    [ { rotateZ: -5 }, 0.20 ],\n                    [ { rotateZ: 0 }, 0.20 ]\n                ]\n            },\n            /* Animate.css */\n            \"callout.tada\": {\n                defaultDuration: 1000,\n                calls: [\n                    [ { scaleX: 0.9, scaleY: 0.9, rotateZ: -3 }, 0.10 ],\n                    [ { scaleX: 1.1, scaleY: 1.1, rotateZ: 3 }, 0.10 ],\n                    [ { scaleX: 1.1, scaleY: 1.1, rotateZ: -3 }, 0.10 ],\n                    [ \"reverse\", 0.125 ],\n                    [ \"reverse\", 0.125 ],\n                    [ \"reverse\", 0.125 ],\n                    [ \"reverse\", 0.125 ],\n                    [ \"reverse\", 0.125 ],\n                    [ { scaleX: 1, scaleY: 1, rotateZ: 0 }, 0.20 ]\n                ]\n            },\n            \"transition.fadeIn\": {\n                defaultDuration: 500,\n                calls: [\n                    [ { opacity: [ 1, 0 ] } ]\n                ]\n            },\n            \"transition.fadeOut\": {\n                defaultDuration: 500,\n                calls: [\n                    [ { opacity: [ 0, 1 ] } ]\n                ]\n            },\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.flipXIn\": {\n                defaultDuration: 700,\n                calls: [\n                    [ { opacity: [ 1, 0 ], transformPerspective: [ 800, 800 ], rotateY: [ 0, -55 ] } ]\n                ],\n                reset: { transformPerspective: 0 }\n            },\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.flipXOut\": {\n                defaultDuration: 700,\n                calls: [\n                    [ { opacity: [ 0, 1 ], transformPerspective: [ 800, 800 ], rotateY: 55 } ]\n                ],\n                reset: { transformPerspective: 0, rotateY: 0 }\n            },\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.flipYIn\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { opacity: [ 1, 0 ], transformPerspective: [ 800, 800 ], rotateX: [ 0, -45 ] } ]\n                ],\n                reset: { transformPerspective: 0 }\n            },\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.flipYOut\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { opacity: [ 0, 1 ], transformPerspective: [ 800, 800 ], rotateX: 25 } ]\n                ],\n                reset: { transformPerspective: 0, rotateX: 0 }\n            },\n            /* Animate.css */\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.flipBounceXIn\": {\n                defaultDuration: 900,\n                calls: [\n                    [ { opacity: [ 0.725, 0 ], transformPerspective: [ 400, 400 ], rotateY: [ -10, 90 ] }, 0.50 ],\n                    [ { opacity: 0.80, rotateY: 10 }, 0.25 ],\n                    [ { opacity: 1, rotateY: 0 }, 0.25 ]\n                ],\n                reset: { transformPerspective: 0 }\n            },\n            /* Animate.css */\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.flipBounceXOut\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { opacity: [ 0.9, 1 ], transformPerspective: [ 400, 400 ], rotateY: -10 }, 0.50 ],\n                    [ { opacity: 0, rotateY: 90 }, 0.50 ]\n                ],\n                reset: { transformPerspective: 0, rotateY: 0 }\n            },\n            /* Animate.css */\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.flipBounceYIn\": {\n                defaultDuration: 850,\n                calls: [\n                    [ { opacity: [ 0.725, 0 ], transformPerspective: [ 400, 400 ], rotateX: [ -10, 90 ] }, 0.50 ],\n                    [ { opacity: 0.80, rotateX: 10 }, 0.25 ],\n                    [ { opacity: 1, rotateX: 0 }, 0.25 ]\n                ],\n                reset: { transformPerspective: 0 }\n            },\n            /* Animate.css */\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.flipBounceYOut\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { opacity: [ 0.9, 1 ], transformPerspective: [ 400, 400 ], rotateX: -15 }, 0.50 ],\n                    [ { opacity: 0, rotateX: 90 }, 0.50 ]\n                ],\n                reset: { transformPerspective: 0, rotateX: 0 }\n            },\n            /* Magic.css */\n            \"transition.swoopIn\": {\n                defaultDuration: 850,\n                calls: [\n                    [ { opacity: [ 1, 0 ], transformOriginX: [ \"100%\", \"50%\" ], transformOriginY: [ \"100%\", \"100%\" ], scaleX: [ 1, 0 ], scaleY: [ 1, 0 ], translateX: [ 0, -700 ], translateZ: 0 } ]\n                ],\n                reset: { transformOriginX: \"50%\", transformOriginY: \"50%\" }\n            },\n            /* Magic.css */\n            \"transition.swoopOut\": {\n                defaultDuration: 850,\n                calls: [\n                    [ { opacity: [ 0, 1 ], transformOriginX: [ \"50%\", \"100%\" ], transformOriginY: [ \"100%\", \"100%\" ], scaleX: 0, scaleY: 0, translateX: -700, translateZ: 0 } ]\n                ],\n                reset: { transformOriginX: \"50%\", transformOriginY: \"50%\", scaleX: 1, scaleY: 1, translateX: 0 }\n            },\n            /* Magic.css */\n            /* Support: Loses rotation in IE9/Android 2.3. (Fades and scales only.) */\n            \"transition.whirlIn\": {\n                defaultDuration: 850,\n                calls: [\n                    [ { opacity: [ 1, 0 ], transformOriginX: [ \"50%\", \"50%\" ], transformOriginY: [ \"50%\", \"50%\" ], scaleX: [ 1, 0 ], scaleY: [ 1, 0 ], rotateY: [ 0, 160 ] }, 1, { easing: \"easeInOutSine\" } ]\n                ]\n            },\n            /* Magic.css */\n            /* Support: Loses rotation in IE9/Android 2.3. (Fades and scales only.) */\n            \"transition.whirlOut\": {\n                defaultDuration: 750,\n                calls: [\n                    [ { opacity: [ 0, \"easeInOutQuint\", 1 ], transformOriginX: [ \"50%\", \"50%\" ], transformOriginY: [ \"50%\", \"50%\" ], scaleX: 0, scaleY: 0, rotateY: 160 }, 1, { easing: \"swing\" } ]\n                ],\n                reset: { scaleX: 1, scaleY: 1, rotateY: 0 }\n            },\n            \"transition.shrinkIn\": {\n                defaultDuration: 750,\n                calls: [\n                    [ { opacity: [ 1, 0 ], transformOriginX: [ \"50%\", \"50%\" ], transformOriginY: [ \"50%\", \"50%\" ], scaleX: [ 1, 1.5 ], scaleY: [ 1, 1.5 ], translateZ: 0 } ]\n                ]\n            },\n            \"transition.shrinkOut\": {\n                defaultDuration: 600,\n                calls: [\n                    [ { opacity: [ 0, 1 ], transformOriginX: [ \"50%\", \"50%\" ], transformOriginY: [ \"50%\", \"50%\" ], scaleX: 1.3, scaleY: 1.3, translateZ: 0 } ]\n                ],\n                reset: { scaleX: 1, scaleY: 1 }\n            },\n            \"transition.expandIn\": {\n                defaultDuration: 700,\n                calls: [\n                    [ { opacity: [ 1, 0 ], transformOriginX: [ \"50%\", \"50%\" ], transformOriginY: [ \"50%\", \"50%\" ], scaleX: [ 1, 0.625 ], scaleY: [ 1, 0.625 ], translateZ: 0 } ]\n                ]\n            },\n            \"transition.expandOut\": {\n                defaultDuration: 700,\n                calls: [\n                    [ { opacity: [ 0, 1 ], transformOriginX: [ \"50%\", \"50%\" ], transformOriginY: [ \"50%\", \"50%\" ], scaleX: 0.5, scaleY: 0.5, translateZ: 0 } ]\n                ],\n                reset: { scaleX: 1, scaleY: 1 }\n            },\n            /* Animate.css */\n            \"transition.bounceIn\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { opacity: [ 1, 0 ], scaleX: [ 1.05, 0.3 ], scaleY: [ 1.05, 0.3 ] }, 0.40 ],\n                    [ { scaleX: 0.9, scaleY: 0.9, translateZ: 0 }, 0.20 ],\n                    [ { scaleX: 1, scaleY: 1 }, 0.50 ]\n                ]\n            },\n            /* Animate.css */\n            \"transition.bounceOut\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { scaleX: 0.95, scaleY: 0.95 }, 0.35 ],\n                    [ { scaleX: 1.1, scaleY: 1.1, translateZ: 0 }, 0.35 ],\n                    [ { opacity: [ 0, 1 ], scaleX: 0.3, scaleY: 0.3 }, 0.30 ]\n                ],\n                reset: { scaleX: 1, scaleY: 1 }\n            },\n            /* Animate.css */\n            \"transition.bounceUpIn\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { opacity: [ 1, 0 ], translateY: [ -30, 1000 ] }, 0.60, { easing: \"easeOutCirc\" } ],\n                    [ { translateY: 10 }, 0.20 ],\n                    [ { translateY: 0 }, 0.20 ]\n                ]\n            },\n            /* Animate.css */\n            \"transition.bounceUpOut\": {\n                defaultDuration: 1000,\n                calls: [\n                    [ { translateY: 20 }, 0.20 ],\n                    [ { opacity: [ 0, \"easeInCirc\", 1 ], translateY: -1000 }, 0.80 ]\n                ],\n                reset: { translateY: 0 }\n            },\n            /* Animate.css */\n            \"transition.bounceDownIn\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { opacity: [ 1, 0 ], translateY: [ 30, -1000 ] }, 0.60, { easing: \"easeOutCirc\" } ],\n                    [ { translateY: -10 }, 0.20 ],\n                    [ { translateY: 0 }, 0.20 ]\n                ]\n            },\n            /* Animate.css */\n            \"transition.bounceDownOut\": {\n                defaultDuration: 1000,\n                calls: [\n                    [ { translateY: -20 }, 0.20 ],\n                    [ { opacity: [ 0, \"easeInCirc\", 1 ], translateY: 1000 }, 0.80 ]\n                ],\n                reset: { translateY: 0 }\n            },\n            /* Animate.css */\n            \"transition.bounceLeftIn\": {\n                defaultDuration: 750,\n                calls: [\n                    [ { opacity: [ 1, 0 ], translateX: [ 30, -1250 ] }, 0.60, { easing: \"easeOutCirc\" } ],\n                    [ { translateX: -10 }, 0.20 ],\n                    [ { translateX: 0 }, 0.20 ]\n                ]\n            },\n            /* Animate.css */\n            \"transition.bounceLeftOut\": {\n                defaultDuration: 750,\n                calls: [\n                    [ { translateX: 30 }, 0.20 ],\n                    [ { opacity: [ 0, \"easeInCirc\", 1 ], translateX: -1250 }, 0.80 ]\n                ],\n                reset: { translateX: 0 }\n            },\n            /* Animate.css */\n            \"transition.bounceRightIn\": {\n                defaultDuration: 750,\n                calls: [\n                    [ { opacity: [ 1, 0 ], translateX: [ -30, 1250 ] }, 0.60, { easing: \"easeOutCirc\" } ],\n                    [ { translateX: 10 }, 0.20 ],\n                    [ { translateX: 0 }, 0.20 ]\n                ]\n            },\n            /* Animate.css */\n            \"transition.bounceRightOut\": {\n                defaultDuration: 750,\n                calls: [\n                    [ { translateX: -30 }, 0.20 ],\n                    [ { opacity: [ 0, \"easeInCirc\", 1 ], translateX: 1250 }, 0.80 ]\n                ],\n                reset: { translateX: 0 }\n            },\n            \"transition.slideUpIn\": {\n                defaultDuration: 900,\n                calls: [\n                    [ { opacity: [ 1, 0 ], translateY: [ 0, 20 ], translateZ: 0 } ]\n                ]\n            },\n            \"transition.slideUpOut\": {\n                defaultDuration: 900,\n                calls: [\n                    [ { opacity: [ 0, 1 ], translateY: -20, translateZ: 0 } ]\n                ],\n                reset: { translateY: 0 }\n            },\n            \"transition.slideDownIn\": {\n                defaultDuration: 900,\n                calls: [\n                    [ { opacity: [ 1, 0 ], translateY: [ 0, -20 ], translateZ: 0 } ]\n                ]\n            },\n            \"transition.slideDownOut\": {\n                defaultDuration: 900,\n                calls: [\n                    [ { opacity: [ 0, 1 ], translateY: 20, translateZ: 0 } ]\n                ],\n                reset: { translateY: 0 }\n            },\n            \"transition.slideLeftIn\": {\n                defaultDuration: 1000,\n                calls: [\n                    [ { opacity: [ 1, 0 ], translateX: [ 0, -20 ], translateZ: 0 } ]\n                ]\n            },\n            \"transition.slideLeftOut\": {\n                defaultDuration: 1050,\n                calls: [\n                    [ { opacity: [ 0, 1 ], translateX: -20, translateZ: 0 } ]\n                ],\n                reset: { translateX: 0 }\n            },\n            \"transition.slideRightIn\": {\n                defaultDuration: 1000,\n                calls: [\n                    [ { opacity: [ 1, 0 ], translateX: [ 0, 20 ], translateZ: 0 } ]\n                ]\n            },\n            \"transition.slideRightOut\": {\n                defaultDuration: 1050,\n                calls: [\n                    [ { opacity: [ 0, 1 ], translateX: 20, translateZ: 0 } ]\n                ],\n                reset: { translateX: 0 }\n            },\n            \"transition.slideUpBigIn\": {\n                defaultDuration: 850,\n                calls: [\n                    [ { opacity: [ 1, 0 ], translateY: [ 0, 75 ], translateZ: 0 } ]\n                ]\n            },\n            \"transition.slideUpBigOut\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { opacity: [ 0, 1 ], translateY: -75, translateZ: 0 } ]\n                ],\n                reset: { translateY: 0 }\n            },\n            \"transition.slideDownBigIn\": {\n                defaultDuration: 850,\n                calls: [\n                    [ { opacity: [ 1, 0 ], translateY: [ 0, -75 ], translateZ: 0 } ]\n                ]\n            },\n            \"transition.slideDownBigOut\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { opacity: [ 0, 1 ], translateY: 75, translateZ: 0 } ]\n                ],\n                reset: { translateY: 0 }\n            },\n            \"transition.slideLeftBigIn\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { opacity: [ 1, 0 ], translateX: [ 0, -75 ], translateZ: 0 } ]\n                ]\n            },\n            \"transition.slideLeftBigOut\": {\n                defaultDuration: 750,\n                calls: [\n                    [ { opacity: [ 0, 1 ], translateX: -75, translateZ: 0 } ]\n                ],\n                reset: { translateX: 0 }\n            },\n            \"transition.slideRightBigIn\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { opacity: [ 1, 0 ], translateX: [ 0, 75 ], translateZ: 0 } ]\n                ]\n            },\n            \"transition.slideRightBigOut\": {\n                defaultDuration: 750,\n                calls: [\n                    [ { opacity: [ 0, 1 ], translateX: 75, translateZ: 0 } ]\n                ],\n                reset: { translateX: 0 }\n            },\n            /* Magic.css */\n            \"transition.perspectiveUpIn\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { opacity: [ 1, 0 ], transformPerspective: [ 800, 800 ], transformOriginX: [ 0, 0 ], transformOriginY: [ \"100%\", \"100%\" ], rotateX: [ 0, -180 ] } ]\n                ],\n                reset: { transformPerspective: 0, transformOriginX: \"50%\", transformOriginY: \"50%\" }\n            },\n            /* Magic.css */\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.perspectiveUpOut\": {\n                defaultDuration: 850,\n                calls: [\n                    [ { opacity: [ 0, 1 ], transformPerspective: [ 800, 800 ], transformOriginX: [ 0, 0 ], transformOriginY: [ \"100%\", \"100%\" ], rotateX: -180 } ]\n                ],\n                reset: { transformPerspective: 0, transformOriginX: \"50%\", transformOriginY: \"50%\", rotateX: 0 }\n            },\n            /* Magic.css */\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.perspectiveDownIn\": {\n                defaultDuration: 800,\n                calls: [\n                    [ { opacity: [ 1, 0 ], transformPerspective: [ 800, 800 ], transformOriginX: [ 0, 0 ], transformOriginY: [ 0, 0 ], rotateX: [ 0, 180 ] } ]\n                ],\n                reset: { transformPerspective: 0, transformOriginX: \"50%\", transformOriginY: \"50%\" }\n            },\n            /* Magic.css */\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.perspectiveDownOut\": {\n                defaultDuration: 850,\n                calls: [\n                    [ { opacity: [ 0, 1 ], transformPerspective: [ 800, 800 ], transformOriginX: [ 0, 0 ], transformOriginY: [ 0, 0 ], rotateX: 180 } ]\n                ],\n                reset: { transformPerspective: 0, transformOriginX: \"50%\", transformOriginY: \"50%\", rotateX: 0 }\n            },\n            /* Magic.css */\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.perspectiveLeftIn\": {\n                defaultDuration: 950,\n                calls: [\n                    [ { opacity: [ 1, 0 ], transformPerspective: [ 2000, 2000 ], transformOriginX: [ 0, 0 ], transformOriginY: [ 0, 0 ], rotateY: [ 0, -180 ] } ]\n                ],\n                reset: { transformPerspective: 0, transformOriginX: \"50%\", transformOriginY: \"50%\" }\n            },\n            /* Magic.css */\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.perspectiveLeftOut\": {\n                defaultDuration: 950,\n                calls: [\n                    [ { opacity: [ 0, 1 ], transformPerspective: [ 2000, 2000 ], transformOriginX: [ 0, 0 ], transformOriginY: [ 0, 0 ], rotateY: -180 } ]\n                ],\n                reset: { transformPerspective: 0, transformOriginX: \"50%\", transformOriginY: \"50%\", rotateY: 0 }\n            },\n            /* Magic.css */\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.perspectiveRightIn\": {\n                defaultDuration: 950,\n                calls: [\n                    [ { opacity: [ 1, 0 ], transformPerspective: [ 2000, 2000 ], transformOriginX: [ \"100%\", \"100%\" ], transformOriginY: [ 0, 0 ], rotateY: [ 0, 180 ] } ]\n                ],\n                reset: { transformPerspective: 0, transformOriginX: \"50%\", transformOriginY: \"50%\" }\n            },\n            /* Magic.css */\n            /* Support: Loses rotation in IE9/Android 2.3 (fades only). */\n            \"transition.perspectiveRightOut\": {\n                defaultDuration: 950,\n                calls: [\n                    [ { opacity: [ 0, 1 ], transformPerspective: [ 2000, 2000 ], transformOriginX: [ \"100%\", \"100%\" ], transformOriginY: [ 0, 0 ], rotateY: 180 } ]\n                ],\n                reset: { transformPerspective: 0, transformOriginX: \"50%\", transformOriginY: \"50%\", rotateY: 0 }\n            }\n        };\n\n    /* Register the packaged effects. */\n    for (var effectName in Velocity.RegisterEffect.packagedEffects) {\n        Velocity.RegisterEffect(effectName, Velocity.RegisterEffect.packagedEffects[effectName]);\n    }\n\n    /*********************\n       Sequence Running\n    **********************/\n\n    /* Note: Sequence calls must use Velocity's single-object arguments syntax. */\n    Velocity.RunSequence = function (originalSequence) {\n        var sequence = $.extend(true, [], originalSequence);\n\n        if (sequence.length > 1) {\n            $.each(sequence.reverse(), function(i, currentCall) {\n                var nextCall = sequence[i + 1];\n\n                if (nextCall) {\n                    /* Parallel sequence calls (indicated via sequenceQueue:false) are triggered\n                       in the previous call's begin callback. Otherwise, chained calls are normally triggered\n                       in the previous call's complete callback. */\n                    var currentCallOptions = currentCall.o || currentCall.options,\n                        nextCallOptions = nextCall.o || nextCall.options;\n\n                    var timing = (currentCallOptions && currentCallOptions.sequenceQueue === false) ? \"begin\" : \"complete\",\n                        callbackOriginal = nextCallOptions && nextCallOptions[timing],\n                        options = {};\n\n                    options[timing] = function() {\n                        var nextCallElements = nextCall.e || nextCall.elements;\n                        var elements = nextCallElements.nodeType ? [ nextCallElements ] : nextCallElements;\n\n                        callbackOriginal && callbackOriginal.call(elements, elements);\n                        Velocity(currentCall);\n                    }\n\n                    if (nextCall.o) {\n                        nextCall.o = $.extend({}, nextCallOptions, options);\n                    } else {\n                        nextCall.options = $.extend({}, nextCallOptions, options);\n                    }\n                }\n            });\n\n            sequence.reverse();\n        }\n\n        Velocity(sequence[0]);\n    };\n}((window.jQuery || window.Zepto || window), window, document);\n}));", "/*! Flight v1.5.2 | (c) Twitter, Inc. | MIT License */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"flight\"] = factory();\n\telse\n\t\troot[\"flight\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n    __webpack_require__(1),\n    __webpack_require__(2),\n    __webpack_require__(3),\n    __webpack_require__(4),\n    __webpack_require__(5),\n    __webpack_require__(6),\n    __webpack_require__(7)\n  ], __WEBPACK_AMD_DEFINE_RESULT__ = function(advice, component, compose, debug, logger, registry, utils) {\n    'use strict';\n\n    return {\n      advice: advice,\n      component: component,\n      compose: compose,\n      debug: debug,\n      logger: logger,\n      registry: registry,\n      utils: utils\n    };\n\n  }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n    __webpack_require__(7)\n  ], __WEBPACK_AMD_DEFINE_RESULT__ = function(utils) {\n    'use strict';\n\n    var advice = {\n\n      around: function(base, wrapped) {\n        return function composedAround() {\n          // unpacking arguments by hand benchmarked faster\n          var i = 0, l = arguments.length, args = new Array(l + 1);\n          args[0] = base.bind(this);\n          for (; i < l; i++) {\n            args[i + 1] = arguments[i];\n          }\n          return wrapped.apply(this, args);\n        };\n      },\n\n      before: function(base, before) {\n        var beforeFn = (typeof before == 'function') ? before : before.obj[before.fnName];\n        return function composedBefore() {\n          beforeFn.apply(this, arguments);\n          return base.apply(this, arguments);\n        };\n      },\n\n      after: function(base, after) {\n        var afterFn = (typeof after == 'function') ? after : after.obj[after.fnName];\n        return function composedAfter() {\n          var res = (base.unbound || base).apply(this, arguments);\n          afterFn.apply(this, arguments);\n          return res;\n        };\n      },\n\n      // a mixin that allows other mixins to augment existing functions by adding additional\n      // code before, after or around.\n      withAdvice: function() {\n        ['before', 'after', 'around'].forEach(function(m) {\n          this[m] = function(method, fn) {\n            var methods = method.trim().split(' ');\n\n            methods.forEach(function(i) {\n              utils.mutateProperty(this, i, function() {\n                if (typeof this[i] == 'function') {\n                  this[i] = advice[m](this[i], fn);\n                } else {\n                  this[i] = fn;\n                }\n\n                return this[i];\n              });\n            }, this);\n          };\n        }, this);\n      }\n    };\n\n    return advice;\n  }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n    __webpack_require__(1),\n    __webpack_require__(7),\n    __webpack_require__(3),\n    __webpack_require__(8),\n    __webpack_require__(6),\n    __webpack_require__(5),\n    __webpack_require__(4)\n  ], __WEBPACK_AMD_DEFINE_RESULT__ = function(advice, utils, compose, withBase, registry, withLogging, debug) {\n    'use strict';\n\n    var functionNameRegEx = /function (.*?)\\s?\\(/;\n    var ignoredMixin = {\n      withBase: true,\n      withLogging: true\n    };\n\n    // teardown for all instances of this constructor\n    function teardownAll() {\n      var componentInfo = registry.findComponentInfo(this);\n\n      componentInfo && Object.keys(componentInfo.instances).forEach(function(k) {\n        var info = componentInfo.instances[k];\n        // It's possible that a previous teardown caused another component to teardown,\n        // so we can't assume that the instances object is as it was.\n        if (info && info.instance) {\n          info.instance.teardown();\n        }\n      });\n    }\n\n    function attachTo(selector/*, options args */) {\n      // unpacking arguments by hand benchmarked faster\n      var l = arguments.length;\n      var args = new Array(l - 1);\n      for (var i = 1; i < l; i++) {\n        args[i - 1] = arguments[i];\n      }\n\n      if (!selector) {\n        throw new Error('Component needs to be attachTo\\'d a jQuery object, native node or selector string');\n      }\n\n      var options = utils.merge.apply(utils, args);\n      var componentInfo = registry.findComponentInfo(this);\n\n      $(selector).each(function(i, node) {\n        if (componentInfo && componentInfo.isAttachedTo(node)) {\n          // already attached\n          return;\n        }\n\n        (new this).initialize(node, options);\n      }.bind(this));\n    }\n\n    function prettyPrintMixins() {\n      //could be called from constructor or constructor.prototype\n      var mixedIn = this.mixedIn || this.prototype.mixedIn || [];\n      return mixedIn.map(function(mixin) {\n        if (mixin.name == null) {\n          // function name property not supported by this browser, use regex\n          var m = mixin.toString().match(functionNameRegEx);\n          return (m && m[1]) ? m[1] : '';\n        }\n        return (!ignoredMixin[mixin.name] ? mixin.name : '');\n      }).filter(Boolean).join(', ');\n    };\n\n\n    // define the constructor for a custom component type\n    // takes an unlimited number of mixin functions as arguments\n    // typical api call with 3 mixins: defineComponent(timeline, withTweetCapability, withScrollCapability);\n    function defineComponent(/*mixins*/) {\n      // unpacking arguments by hand benchmarked faster\n      var l = arguments.length;\n      var mixins = new Array(l);\n      for (var i = 0; i < l; i++) {\n        mixins[i] = arguments[i];\n      }\n\n      var Component = function() {};\n\n      Component.toString = Component.prototype.toString = prettyPrintMixins;\n      if (debug.enabled) {\n        Component.describe = Component.prototype.describe = Component.toString();\n      }\n\n      // 'options' is optional hash to be merged with 'defaults' in the component definition\n      Component.attachTo = attachTo;\n      // enables extension of existing \"base\" Components\n      Component.mixin = function() {\n        var newComponent = defineComponent(); //TODO: fix pretty print\n        var newPrototype = Object.create(Component.prototype);\n        newPrototype.mixedIn = [].concat(Component.prototype.mixedIn);\n        newPrototype.defaults = utils.merge(Component.prototype.defaults);\n        newPrototype.attrDef = Component.prototype.attrDef;\n        compose.mixin(newPrototype, arguments);\n        newComponent.prototype = newPrototype;\n        newComponent.prototype.constructor = newComponent;\n        return newComponent;\n      };\n      Component.teardownAll = teardownAll;\n\n      // prepend common mixins to supplied list, then mixin all flavors\n      if (debug.enabled) {\n        mixins.unshift(withLogging);\n      }\n      mixins.unshift(withBase, advice.withAdvice, registry.withRegistration);\n      compose.mixin(Component.prototype, mixins);\n\n      return Component;\n    }\n\n    defineComponent.teardownAll = function() {\n      registry.components.slice().forEach(function(c) {\n        c.component.teardownAll();\n      });\n      registry.reset();\n    };\n\n    return defineComponent;\n  }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n    __webpack_require__(7)\n  ], __WEBPACK_AMD_DEFINE_RESULT__ = function(utils) {\n    'use strict';\n\n    var dontLock = ['mixedIn', 'attrDef'];\n\n    function setWritability(obj, writable) {\n      Object.keys(obj).forEach(function (key) {\n        if (dontLock.indexOf(key) < 0) {\n          utils.propertyWritability(obj, key, writable);\n        }\n      });\n    }\n\n    function mixin(base, mixins) {\n      base.mixedIn = Object.prototype.hasOwnProperty.call(base, 'mixedIn') ? base.mixedIn : [];\n\n      for (var i = 0; i < mixins.length; i++) {\n        if (base.mixedIn.indexOf(mixins[i]) == -1) {\n          setWritability(base, false);\n          mixins[i].call(base);\n          base.mixedIn.push(mixins[i]);\n        }\n      }\n\n      setWritability(base, true);\n    }\n\n    return {\n      mixin: mixin\n    };\n\n  }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(6)], __WEBPACK_AMD_DEFINE_RESULT__ = function(registry) {\n    'use strict';\n\n    // ==========================================\n    // Search object model\n    // ==========================================\n\n    function traverse(util, searchTerm, options) {\n      options = options || {};\n      var obj = options.obj || window;\n      var path = options.path || ((obj == window) ? 'window' : '');\n      var props = Object.keys(obj);\n      props.forEach(function(prop) {\n        if ((tests[util] || util)(searchTerm, obj, prop)) {\n          console.log([path, '.', prop].join(''), '->', ['(', typeof obj[prop], ')'].join(''), obj[prop]);\n        }\n        if (Object.prototype.toString.call(obj[prop]) == '[object Object]' && (obj[prop] != obj) && path.split('.').indexOf(prop) == -1) {\n          traverse(util, searchTerm, {obj: obj[prop], path: [path,prop].join('.')});\n        }\n      });\n    }\n\n    function search(util, expected, searchTerm, options) {\n      if (!expected || typeof searchTerm == expected) {\n        traverse(util, searchTerm, options);\n      } else {\n        console.error([searchTerm, 'must be', expected].join(' '));\n      }\n    }\n\n    var tests = {\n      'name': function(searchTerm, obj, prop) {return searchTerm == prop;},\n      'nameContains': function(searchTerm, obj, prop) {return prop.indexOf(searchTerm) > -1;},\n      'type': function(searchTerm, obj, prop) {return obj[prop] instanceof searchTerm;},\n      'value': function(searchTerm, obj, prop) {return obj[prop] === searchTerm;},\n      'valueCoerced': function(searchTerm, obj, prop) {return obj[prop] == searchTerm;}\n    };\n\n    function byName(searchTerm, options) {search('name', 'string', searchTerm, options);}\n    function byNameContains(searchTerm, options) {search('nameContains', 'string', searchTerm, options);}\n    function byType(searchTerm, options) {search('type', 'function', searchTerm, options);}\n    function byValue(searchTerm, options) {search('value', null, searchTerm, options);}\n    function byValueCoerced(searchTerm, options) {search('valueCoerced', null, searchTerm, options);}\n    function custom(fn, options) {traverse(fn, null, options);}\n\n    // ==========================================\n    // Event logging\n    // ==========================================\n\n    var ALL = 'all'; //no filter\n\n    //log nothing by default\n    var logFilter = {\n      eventNames: [],\n      actions: []\n    }\n\n    function filterEventLogsByAction(/*actions*/) {\n      var actions = [].slice.call(arguments);\n\n      logFilter.eventNames.length || (logFilter.eventNames = ALL);\n      logFilter.actions = actions.length ? actions : ALL;\n      saveLogFilter();\n    }\n\n    function filterEventLogsByName(/*eventNames*/) {\n      var eventNames = [].slice.call(arguments);\n\n      logFilter.actions.length || (logFilter.actions = ALL);\n      logFilter.eventNames = eventNames.length ? eventNames : ALL;\n      saveLogFilter();\n    }\n\n    function hideAllEventLogs() {\n      logFilter.actions = [];\n      logFilter.eventNames = [];\n      saveLogFilter();\n    }\n\n    function showAllEventLogs() {\n      logFilter.actions = ALL;\n      logFilter.eventNames = ALL;\n      saveLogFilter();\n    }\n\n    function saveLogFilter() {\n      try {\n        if (window.localStorage) {\n          localStorage.setItem('logFilter_eventNames', logFilter.eventNames);\n          localStorage.setItem('logFilter_actions', logFilter.actions);\n        }\n      } catch (ignored) {};\n    }\n\n    function retrieveLogFilter() {\n      var eventNames, actions;\n      try {\n        eventNames = (window.localStorage && localStorage.getItem('logFilter_eventNames'));\n        actions = (window.localStorage && localStorage.getItem('logFilter_actions'));\n      } catch (ignored) {\n        return;\n      }\n      eventNames && (logFilter.eventNames = eventNames);\n      actions && (logFilter.actions = actions);\n\n      // reconstitute arrays in place\n      Object.keys(logFilter).forEach(function(k) {\n        var thisProp = logFilter[k];\n        if (typeof thisProp == 'string' && thisProp !== ALL) {\n          logFilter[k] = thisProp ? thisProp.split(',') : [];\n        }\n      });\n    }\n\n    return {\n\n      enable: function(enable) {\n        this.enabled = !!enable;\n\n        if (enable && window.console) {\n          console.info('Booting in DEBUG mode');\n          console.info('You can configure event logging with DEBUG.events.logAll()/logNone()/logByName()/logByAction()');\n        }\n\n        retrieveLogFilter();\n\n        window.DEBUG = this;\n      },\n\n      warn: function (/*messages*/) {\n        if (!window.console) { return; }\n        var fn = (console.warn || console.log);\n        var messages = [].slice.call(arguments);\n        messages.unshift(this.toString() + ':')\n        fn.apply(console, messages);\n      },\n\n      registry: registry,\n\n      find: {\n        byName: byName,\n        byNameContains: byNameContains,\n        byType: byType,\n        byValue: byValue,\n        byValueCoerced: byValueCoerced,\n        custom: custom\n      },\n\n      events: {\n        logFilter: logFilter,\n\n        // Accepts any number of action args\n        // e.g. DEBUG.events.logByAction(\"on\", \"off\")\n        logByAction: filterEventLogsByAction,\n\n        // Accepts any number of event name args (inc. regex or wildcards)\n        // e.g. DEBUG.events.logByName(/ui.*/, \"*Thread*\");\n        logByName: filterEventLogsByName,\n\n        logAll: showAllEventLogs,\n        logNone: hideAllEventLogs\n      }\n    };\n  }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n    __webpack_require__(7)\n  ], __WEBPACK_AMD_DEFINE_RESULT__ = function(utils) {\n    'use strict';\n\n    var actionSymbols = {\n      on: '<-',\n      trigger: '->',\n      off: 'x '\n    };\n\n    function elemToString(elem) {\n      var tagStr = elem.tagName ? elem.tagName.toLowerCase() : elem.toString();\n      var classStr = elem.className ? '.' + (elem.className) : '';\n      var result = tagStr + classStr;\n      return elem.tagName ? ['\\'', '\\''].join(result) : result;\n    }\n\n    function log(action, component, eventArgs) {\n      if (!window.DEBUG || !window.DEBUG.enabled) {\n        return;\n      }\n      var name, eventType, elem, fn, payload, logFilter, toRegExp, actionLoggable, nameLoggable, info;\n\n      if (typeof eventArgs[eventArgs.length - 1] == 'function') {\n        fn = eventArgs.pop();\n        fn = fn.unbound || fn; // use unbound version if any (better info)\n      }\n\n      if (eventArgs.length == 1) {\n        elem = component.$node[0];\n        eventType = eventArgs[0];\n      } else if ((eventArgs.length == 2) && typeof eventArgs[1] == 'object' && !eventArgs[1].type) {\n        //2 args, first arg is not elem\n        elem = component.$node[0];\n        eventType = eventArgs[0];\n        if (action == \"trigger\") {\n          payload = eventArgs[1];\n        }\n      } else {\n        //2+ args, first arg is elem\n        elem = eventArgs[0];\n        eventType = eventArgs[1];\n        if (action == \"trigger\") {\n          payload = eventArgs[2];\n        }\n      }\n\n      name = typeof eventType == 'object' ? eventType.type : eventType;\n\n      logFilter = window.DEBUG.events.logFilter;\n\n      // no regex for you, actions...\n      actionLoggable = logFilter.actions == 'all' || (logFilter.actions.indexOf(action) > -1);\n      // event name filter allow wildcards or regex...\n      toRegExp = function(expr) {\n        return expr.test ? expr : new RegExp('^' + expr.replace(/\\*/g, '.*') + '$');\n      };\n      nameLoggable =\n        logFilter.eventNames == 'all' ||\n        logFilter.eventNames.some(function(e) {return toRegExp(e).test(name);});\n\n      if (actionLoggable && nameLoggable) {\n        info = [actionSymbols[action], action, '[' + name + ']'];\n        payload && info.push(payload);\n        info.push(elemToString(elem));\n        info.push(component.constructor.describe.split(' ').slice(0,3).join(' '));\n        console.groupCollapsed && action == 'trigger' && console.groupCollapsed(action, name);\n        // IE9 doesn't define `apply` for console methods, but this works everywhere:\n        Function.prototype.apply.call(console.info, console, info);\n      }\n    }\n\n    function withLogging() {\n      this.before('trigger', function() {\n        log('trigger', this, utils.toArray(arguments));\n      });\n      if (console.groupCollapsed) {\n        this.after('trigger', function() {\n          console.groupEnd();\n        });\n      }\n      this.before('on', function() {\n        log('on', this, utils.toArray(arguments));\n      });\n      this.before('off', function() {\n        log('off', this, utils.toArray(arguments));\n      });\n    }\n\n    return withLogging;\n  }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() {\n    'use strict';\n\n    function parseEventArgs(instance, args) {\n      var element, type, callback;\n      var end = args.length;\n\n      if (typeof args[end - 1] == 'function') {\n        end -= 1;\n        callback = args[end];\n      }\n\n      if (typeof args[end - 1] == 'object') {\n        end -= 1;\n      }\n\n      if (end == 2) {\n        element = args[0];\n        type = args[1];\n      } else {\n        element = instance.node;\n        type = args[0];\n      }\n\n      return {\n        element: element,\n        type: type,\n        callback: callback\n      };\n    }\n\n    function matchEvent(a, b) {\n      return (\n        (a.element == b.element) &&\n        (a.type == b.type) &&\n        (b.callback == null || (a.callback == b.callback))\n      );\n    }\n\n    function Registry() {\n\n      var registry = this;\n\n      (this.reset = function() {\n        this.components = [];\n        this.allInstances = {};\n        this.events = [];\n      }).call(this);\n\n      function ComponentInfo(component) {\n        this.component = component;\n        this.attachedTo = [];\n        this.instances = {};\n\n        this.addInstance = function(instance) {\n          var instanceInfo = new InstanceInfo(instance);\n          this.instances[instance.identity] = instanceInfo;\n          this.attachedTo.push(instance.node);\n\n          return instanceInfo;\n        };\n\n        this.removeInstance = function(instance) {\n          delete this.instances[instance.identity];\n          var indexOfNode = this.attachedTo.indexOf(instance.node);\n          (indexOfNode > -1) && this.attachedTo.splice(indexOfNode, 1);\n\n          if (!Object.keys(this.instances).length) {\n            //if I hold no more instances remove me from registry\n            registry.removeComponentInfo(this);\n          }\n        };\n\n        this.isAttachedTo = function(node) {\n          return this.attachedTo.indexOf(node) > -1;\n        };\n      }\n\n      function InstanceInfo(instance) {\n        this.instance = instance;\n        this.events = [];\n\n        this.addBind = function(event) {\n          this.events.push(event);\n          registry.events.push(event);\n        };\n\n        this.removeBind = function(event) {\n          for (var i = 0, e; e = this.events[i]; i++) {\n            if (matchEvent(e, event)) {\n              this.events.splice(i, 1);\n            }\n          }\n        };\n      }\n\n      this.addInstance = function(instance) {\n        var component = this.findComponentInfo(instance);\n\n        if (!component) {\n          component = new ComponentInfo(instance.constructor);\n          this.components.push(component);\n        }\n\n        var inst = component.addInstance(instance);\n\n        this.allInstances[instance.identity] = inst;\n\n        return component;\n      };\n\n      this.removeInstance = function(instance) {\n        //remove from component info\n        var componentInfo = this.findComponentInfo(instance);\n        componentInfo && componentInfo.removeInstance(instance);\n\n        //remove from registry\n        delete this.allInstances[instance.identity];\n      };\n\n      this.removeComponentInfo = function(componentInfo) {\n        var index = this.components.indexOf(componentInfo);\n        (index > -1) && this.components.splice(index, 1);\n      };\n\n      this.findComponentInfo = function(which) {\n        var component = which.attachTo ? which : which.constructor;\n\n        for (var i = 0, c; c = this.components[i]; i++) {\n          if (c.component === component) {\n            return c;\n          }\n        }\n\n        return null;\n      };\n\n      this.findInstanceInfo = function(instance) {\n        return this.allInstances[instance.identity] || null;\n      };\n\n      this.getBoundEventNames = function(instance) {\n        return this.findInstanceInfo(instance).events.map(function(ev) {\n          return ev.type;\n        });\n      };\n\n      this.findInstanceInfoByNode = function(node) {\n        var result = [];\n        Object.keys(this.allInstances).forEach(function(k) {\n          var thisInstanceInfo = this.allInstances[k];\n          if (thisInstanceInfo.instance.node === node) {\n            result.push(thisInstanceInfo);\n          }\n        }, this);\n        return result;\n      };\n\n      this.on = function(componentOn) {\n        var instance = registry.findInstanceInfo(this), boundCallback;\n\n        // unpacking arguments by hand benchmarked faster\n        var l = arguments.length, i = 1;\n        var otherArgs = new Array(l - 1);\n        for (; i < l; i++) {\n          otherArgs[i - 1] = arguments[i];\n        }\n\n        if (instance) {\n          boundCallback = componentOn.apply(null, otherArgs);\n          if (boundCallback) {\n            otherArgs[otherArgs.length - 1] = boundCallback;\n          }\n          var event = parseEventArgs(this, otherArgs);\n          instance.addBind(event);\n        }\n      };\n\n      this.off = function(/*el, type, callback*/) {\n        var event = parseEventArgs(this, arguments),\n            instance = registry.findInstanceInfo(this);\n\n        if (instance) {\n          instance.removeBind(event);\n        }\n\n        //remove from global event registry\n        for (var i = 0, e; e = registry.events[i]; i++) {\n          if (matchEvent(e, event)) {\n            registry.events.splice(i, 1);\n          }\n        }\n      };\n\n      // debug tools may want to add advice to trigger\n      registry.trigger = function() {};\n\n      this.teardown = function() {\n        registry.removeInstance(this);\n      };\n\n      this.withRegistration = function() {\n        this.after('initialize', function() {\n          registry.addInstance(this);\n        });\n\n        this.around('on', registry.on);\n        this.after('off', registry.off);\n        //debug tools may want to add advice to trigger\n        window.DEBUG && (false).enabled && this.after('trigger', registry.trigger);\n        this.after('teardown', {obj: registry, fnName: 'teardown'});\n      };\n\n    }\n\n    return new Registry;\n  }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function(debug) {\n    'use strict';\n\n    var DEFAULT_INTERVAL = 100;\n\n    function canWriteProtect() {\n      var writeProtectSupported = debug.enabled && !Object.propertyIsEnumerable('getOwnPropertyDescriptor');\n      if (writeProtectSupported) {\n        //IE8 getOwnPropertyDescriptor is built-in but throws exeption on non DOM objects\n        try {\n          Object.getOwnPropertyDescriptor(Object, 'keys');\n        } catch (e) {\n         return false;\n        }\n      }\n\n      return writeProtectSupported;\n    }\n\n    var utils = {\n\n      isDomObj: function(obj) {\n        return !!(obj.nodeType || (obj === window));\n      },\n\n      toArray: function(obj, from) {\n        from = from || 0;\n        var len = obj.length, arr = new Array(len - from);\n        for (var i = from; i < len; i++) {\n          arr[i - from] = obj[i];\n        }\n        return arr;\n      },\n\n      // returns new object representing multiple objects merged together\n      // optional final argument is boolean which specifies if merge is recursive\n      // original objects are unmodified\n      //\n      // usage:\n      //   var base = {a:2, b:6};\n      //   var extra = {b:3, c:4};\n      //   merge(base, extra); //{a:2, b:3, c:4}\n      //   base; //{a:2, b:6}\n      //\n      //   var base = {a:2, b:6};\n      //   var extra = {b:3, c:4};\n      //   var extraExtra = {a:4, d:9};\n      //   merge(base, extra, extraExtra); //{a:4, b:3, c:4. d: 9}\n      //   base; //{a:2, b:6}\n      //\n      //   var base = {a:2, b:{bb:4, cc:5}};\n      //   var extra = {a:4, b:{cc:7, dd:1}};\n      //   merge(base, extra, true); //{a:4, b:{bb:4, cc:7, dd:1}}\n      //   base; //{a:2, b:{bb:4, cc:5}};\n\n      merge: function(/*obj1, obj2,....deepCopy*/) {\n        // unpacking arguments by hand benchmarked faster\n        var l = arguments.length,\n            args = new Array(l + 1);\n\n        if (l === 0) {\n          return {};\n        }\n\n        for (var i = 0; i < l; i++) {\n          args[i + 1] = arguments[i];\n        }\n\n        //start with empty object so a copy is created\n        args[0] = {};\n\n        if (args[args.length - 1] === true) {\n          //jquery extend requires deep copy as first arg\n          args.pop();\n          args.unshift(true);\n        }\n\n        return $.extend.apply(undefined, args);\n      },\n\n      // updates base in place by copying properties of extra to it\n      // optionally clobber protected\n      // usage:\n      //   var base = {a:2, b:6};\n      //   var extra = {c:4};\n      //   push(base, extra); //{a:2, b:6, c:4}\n      //   base; //{a:2, b:6, c:4}\n      //\n      //   var base = {a:2, b:6};\n      //   var extra = {b: 4 c:4};\n      //   push(base, extra, true); //Error (\"utils.push attempted to overwrite 'b' while running in protected mode\")\n      //   base; //{a:2, b:6}\n      //\n      // objects with the same key will merge recursively when protect is false\n      // eg:\n      // var base = {a:16, b:{bb:4, cc:10}};\n      // var extra = {b:{cc:25, dd:19}, c:5};\n      // push(base, extra); //{a:16, {bb:4, cc:25, dd:19}, c:5}\n      //\n      push: function(base, extra, protect) {\n        if (base) {\n          Object.keys(extra || {}).forEach(function(key) {\n            if (base[key] && protect) {\n              throw new Error('utils.push attempted to overwrite \"' + key + '\" while running in protected mode');\n            }\n\n            if (typeof base[key] == 'object' && typeof extra[key] == 'object') {\n              // recurse\n              this.push(base[key], extra[key]);\n            } else {\n              // no protect, so extra wins\n              base[key] = extra[key];\n            }\n          }, this);\n        }\n\n        return base;\n      },\n\n      // If obj.key points to an enumerable property, return its value\n      // If obj.key points to a non-enumerable property, return undefined\n      getEnumerableProperty: function(obj, key) {\n        return obj.propertyIsEnumerable(key) ? obj[key] : undefined;\n      },\n\n      // build a function from other function(s)\n      // utils.compose(a,b,c) -> a(b(c()));\n      // implementation lifted from underscore.js (c) 2009-2012 Jeremy Ashkenas\n      compose: function() {\n        var funcs = arguments;\n\n        return function() {\n          var args = arguments;\n\n          for (var i = funcs.length - 1; i >= 0; i--) {\n            args = [funcs[i].apply(this, args)];\n          }\n\n          return args[0];\n        };\n      },\n\n      // Can only unique arrays of homogeneous primitives, e.g. an array of only strings, an array of only booleans, or an array of only numerics\n      uniqueArray: function(array) {\n        var u = {}, a = [];\n\n        for (var i = 0, l = array.length; i < l; ++i) {\n          if (u.hasOwnProperty(array[i])) {\n            continue;\n          }\n\n          a.push(array[i]);\n          u[array[i]] = 1;\n        }\n\n        return a;\n      },\n\n      debounce: function(func, wait, immediate) {\n        if (typeof wait != 'number') {\n          wait = DEFAULT_INTERVAL;\n        }\n\n        var timeout, result;\n\n        return function() {\n          var context = this, args = arguments;\n          var later = function() {\n            timeout = null;\n            if (!immediate) {\n              result = func.apply(context, args);\n            }\n          };\n          var callNow = immediate && !timeout;\n\n          timeout && clearTimeout(timeout);\n          timeout = setTimeout(later, wait);\n\n          if (callNow) {\n            result = func.apply(context, args);\n          }\n\n          return result;\n        };\n      },\n\n      throttle: function(func, wait) {\n        if (typeof wait != 'number') {\n          wait = DEFAULT_INTERVAL;\n        }\n\n        var context, args, timeout, throttling, more, result;\n        var whenDone = this.debounce(function() {\n          more = throttling = false;\n        }, wait);\n\n        return function() {\n          context = this; args = arguments;\n          var later = function() {\n            timeout = null;\n            if (more) {\n              result = func.apply(context, args);\n            }\n            whenDone();\n          };\n\n          if (!timeout) {\n            timeout = setTimeout(later, wait);\n          }\n\n          if (throttling) {\n            more = true;\n          } else {\n            throttling = true;\n            result = func.apply(context, args);\n          }\n\n          whenDone();\n          return result;\n        };\n      },\n\n      countThen: function(num, base) {\n        return function() {\n          if (!--num) { return base.apply(this, arguments); }\n        };\n      },\n\n      delegate: function(rules) {\n        return function(e, data) {\n          var target = $(e.target), parent;\n\n          Object.keys(rules).forEach(function(selector) {\n            if (!e.isPropagationStopped() && (parent = target.closest(selector)).length) {\n              data = data || {};\n              e.currentTarget = data.el = parent[0];\n              return rules[selector].apply(this, [e, data]);\n            }\n          }, this);\n        };\n      },\n\n      // ensures that a function will only be called once.\n      // usage:\n      // will only create the application once\n      //   var initialize = utils.once(createApplication)\n      //     initialize();\n      //     initialize();\n      //\n      // will only delete a record once\n      //   var myHanlder = function () {\n      //     $.ajax({type: 'DELETE', url: 'someurl.com', data: {id: 1}});\n      //   };\n      //   this.on('click', utils.once(myHandler));\n      //\n      once: function(func) {\n        var ran, result;\n\n        return function() {\n          if (ran) {\n            return result;\n          }\n\n          ran = true;\n          result = func.apply(this, arguments);\n\n          return result;\n        };\n      },\n\n      propertyWritability: function(obj, prop, writable) {\n        if (canWriteProtect() && obj.hasOwnProperty(prop)) {\n          Object.defineProperty(obj, prop, { writable: writable });\n        }\n      },\n\n      // Property locking/unlocking\n      mutateProperty: function(obj, prop, op) {\n        var writable;\n\n        if (!canWriteProtect() || !obj.hasOwnProperty(prop)) {\n          op.call(obj);\n          return;\n        }\n\n        writable = Object.getOwnPropertyDescriptor(obj, prop).writable;\n\n        Object.defineProperty(obj, prop, { writable: true });\n        op.call(obj);\n        Object.defineProperty(obj, prop, { writable: writable });\n\n      }\n\n    };\n\n    return utils;\n  }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n    __webpack_require__(7),\n    __webpack_require__(6),\n    __webpack_require__(4)\n  ], __WEBPACK_AMD_DEFINE_RESULT__ = function(utils, registry, debug) {\n    'use strict';\n\n    // common mixin allocates basic functionality - used by all component prototypes\n    // callback context is bound to component\n    var componentId = 0;\n\n    function teardownInstance(instanceInfo) {\n      if (!instanceInfo) { return; }\n\n      instanceInfo.events.slice().forEach(function(event) {\n        var args = [event.type];\n\n        event.element && args.unshift(event.element);\n        (typeof event.callback == 'function') && args.push(event.callback);\n\n        this.off.apply(this, args);\n      }, instanceInfo.instance);\n    }\n\n    function checkSerializable(type, data) {\n      try {\n        window.postMessage(data, '*');\n      } catch (e) {\n        debug.warn.call(this, [\n          'Event \"', type, '\" was triggered with non-serializable data. ',\n          'Flight recommends you avoid passing non-serializable data in events.'\n        ].join(''));\n      }\n    }\n\n    function warnAboutReferenceType(key) {\n      debug.warn.call(this, [\n        'Attribute \"', key, '\" defaults to an array or object. ',\n        'Enclose this in a function to avoid sharing between component instances.'\n      ].join(''));\n    }\n\n    function initAttributes(attrs) {\n      var definedKeys = [], incomingKeys;\n\n      this.attr = new this.attrDef;\n\n      if (debug.enabled && window.console) {\n        for (var key in this.attrDef.prototype) {\n          definedKeys.push(key);\n        }\n        incomingKeys = Object.keys(attrs);\n\n        for (var i = incomingKeys.length - 1; i >= 0; i--) {\n          if (definedKeys.indexOf(incomingKeys[i]) == -1) {\n            debug.warn.call(this, 'Passed unused attribute \"' + incomingKeys[i] + '\".');\n            break;\n          }\n        }\n      }\n\n      for (var key in this.attrDef.prototype) {\n        if (typeof attrs[key] == 'undefined') {\n          if (this.attr[key] === null) {\n            throw new Error('Required attribute \"' + key +\n                            '\" not specified in attachTo for component \"' + this.toString() + '\".');\n          }\n          // Warn about reference types in attributes\n          if (debug.enabled && typeof this.attr[key] === 'object') {\n            warnAboutReferenceType.call(this, key);\n          }\n        } else {\n          this.attr[key] = attrs[key];\n        }\n\n        if (typeof this.attr[key] == 'function') {\n          this.attr[key] = this.attr[key].call(this);\n        }\n      }\n\n    }\n\n    function initDeprecatedAttributes(attrs) {\n      if (debug.enabled) {\n        debug.warn.call(this, 'defaultAttrs will be removed in a future version. Please use attributes.');\n      }\n\n      // merge defaults with supplied options\n      // put options in attr.__proto__ to avoid merge overhead\n      var attr = Object.create(attrs);\n\n      for (var key in this.defaults) {\n        if (!attrs.hasOwnProperty(key)) {\n          attr[key] = this.defaults[key];\n          // Warn about reference types in defaultAttrs\n          if (debug.enabled && typeof this.defaults[key] === 'object') {\n            warnAboutReferenceType.call(this, key);\n          }\n        }\n      }\n\n      this.attr = attr;\n\n      Object.keys(this.defaults || {}).forEach(function(key) {\n        if (this.defaults[key] === null && this.attr[key] === null) {\n          throw new Error('Required attribute \"' + key +\n                          '\" not specified in attachTo for component \"' + this.toString() + '\".');\n        }\n      }, this);\n    }\n\n    function proxyEventTo(targetEvent) {\n      return function(e, data) {\n        $(e.target).trigger(targetEvent, data);\n      };\n    }\n\n    function withBase() {\n\n      // delegate trigger, bind and unbind to an element\n      // if $element not supplied, use component's node\n      // other arguments are passed on\n      // event can be either a string specifying the type\n      // of the event, or a hash specifying both the type\n      // and a default function to be called.\n      this.trigger = function() {\n        var $element, type, data, event, defaultFn;\n        var lastIndex = arguments.length - 1, lastArg = arguments[lastIndex];\n\n        if (typeof lastArg != 'string' && !(lastArg && lastArg.defaultBehavior)) {\n          lastIndex--;\n          data = lastArg;\n        }\n\n        if (lastIndex == 1) {\n          $element = $(arguments[0]);\n          event = arguments[1];\n        } else {\n          $element = this.$node;\n          event = arguments[0];\n        }\n\n        if (event.defaultBehavior) {\n          defaultFn = event.defaultBehavior;\n          event = $.Event(event.type);\n        }\n\n        type = event.type || event;\n\n        if (debug.enabled && window.postMessage) {\n          checkSerializable.call(this, type, data);\n        }\n\n        if (typeof this.attr.eventData == 'object') {\n          data = $.extend(true, {}, this.attr.eventData, data);\n        }\n\n        $element.trigger((event || type), data);\n\n        if (defaultFn && !event.isDefaultPrevented()) {\n          (this[defaultFn] || defaultFn).call(this, event, data);\n        }\n\n        return $element;\n      };\n\n\n      this.on = function() {\n        var $element, type, callback, originalCb;\n        var lastIndex = arguments.length - 1, origin = arguments[lastIndex];\n\n        if (typeof origin == 'object') {\n          //delegate callback\n          originalCb = utils.delegate(\n            this.resolveDelegateRules(origin)\n          );\n        } else if (typeof origin == 'string') {\n          originalCb = proxyEventTo(origin);\n        } else {\n          originalCb = origin;\n        }\n\n        if (lastIndex == 2) {\n          $element = $(arguments[0]);\n          type = arguments[1];\n        } else {\n          $element = this.$node;\n          type = arguments[0];\n        }\n\n        if (typeof originalCb != 'function' && typeof originalCb != 'object') {\n          throw new Error('Unable to bind to \"' + type +\n                          '\" because the given callback is not a function or an object');\n        }\n\n        callback = originalCb.bind(this);\n        callback.target = originalCb;\n        callback.context = this;\n\n        $element.on(type, callback);\n\n        // store every bound version of the callback\n        originalCb.bound || (originalCb.bound = []);\n        originalCb.bound.push(callback);\n\n        return callback;\n      };\n\n      this.off = function() {\n        var $element, type, callback;\n        var lastIndex = arguments.length - 1;\n\n        if (typeof arguments[lastIndex] == 'function') {\n          callback = arguments[lastIndex];\n          lastIndex -= 1;\n        }\n\n        if (lastIndex == 1) {\n          $element = $(arguments[0]);\n          type = arguments[1];\n        } else {\n          $element = this.$node;\n          type = arguments[0];\n        }\n\n        if (callback) {\n          //this callback may be the original function or a bound version\n          var boundFunctions = callback.target ? callback.target.bound : callback.bound || [];\n          //set callback to version bound against this instance\n          boundFunctions && boundFunctions.some(function(fn, i, arr) {\n            if (fn.context && (this.identity == fn.context.identity)) {\n              arr.splice(i, 1);\n              callback = fn;\n              return true;\n            }\n          }, this);\n          $element.off(type, callback);\n        } else {\n          // Loop through the events of `this` instance\n          // and unbind using the callback\n          registry.findInstanceInfo(this).events.forEach(function (event) {\n            if (type == event.type) {\n              $element.off(type, event.callback);\n            }\n          });\n        }\n\n        return $element;\n      };\n\n      this.resolveDelegateRules = function(ruleInfo) {\n        var rules = {};\n\n        Object.keys(ruleInfo).forEach(function(r) {\n          if (!(r in this.attr)) {\n            throw new Error('Component \"' + this.toString() + '\" wants to listen on \"' + r + '\" but no such attribute was defined.');\n          }\n          rules[this.attr[r]] = (typeof ruleInfo[r] == 'string') ? proxyEventTo(ruleInfo[r]) : ruleInfo[r];\n        }, this);\n\n        return rules;\n      };\n\n      this.select = function(attributeKey) {\n        return this.$node.find(this.attr[attributeKey]);\n      };\n\n      // New-style attributes\n\n      this.attributes = function(attrs) {\n\n        var Attributes = function() {};\n\n        if (this.attrDef) {\n          Attributes.prototype = new this.attrDef;\n        }\n\n        for (var name in attrs) {\n          Attributes.prototype[name] = attrs[name];\n        }\n\n        this.attrDef = Attributes;\n      };\n\n      // Deprecated attributes\n\n      this.defaultAttrs = function(defaults) {\n        utils.push(this.defaults, defaults, true) || (this.defaults = defaults);\n      };\n\n      this.initialize = function(node, attrs) {\n        attrs = attrs || {};\n        this.identity || (this.identity = componentId++);\n\n        if (!node) {\n          throw new Error('Component needs a node');\n        }\n\n        if (node.jquery) {\n          this.node = node[0];\n          this.$node = node;\n        } else {\n          this.node = node;\n          this.$node = $(node);\n        }\n\n        if (this.attrDef) {\n          initAttributes.call(this, attrs);\n        } else {\n          initDeprecatedAttributes.call(this, attrs);\n        }\n\n        return this;\n      };\n\n      this.teardown = function() {\n        var instanceInfo = registry.findInstanceInfo(this);\n\n        if (instanceInfo) {\n          teardownInstance(instanceInfo);\n        }\n      };\n    }\n\n    return withBase;\n  }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }\n/******/ ])\n});\n", "/*\nTurbolinks 5.2.0\nCopyright \u00A9 2018 Basecamp, LLC\n */\n(function(){var t=this;(function(){(function(){this.Turbolinks={supported:function(){return null!=window.history.pushState&&null!=window.requestAnimationFrame&&null!=window.addEventListener}(),visit:function(t,r){return e.controller.visit(t,r)},clearCache:function(){return e.controller.clearCache()},setProgressBarDelay:function(t){return e.controller.setProgressBarDelay(t)}}}).call(this)}).call(t);var e=t.Turbolinks;(function(){(function(){var t,r,n,o=[].slice;e.copyObject=function(t){var e,r,n;r={};for(e in t)n=t[e],r[e]=n;return r},e.closest=function(e,r){return t.call(e,r)},t=function(){var t,e;return t=document.documentElement,null!=(e=t.closest)?e:function(t){var e;for(e=this;e;){if(e.nodeType===Node.ELEMENT_NODE&&r.call(e,t))return e;e=e.parentNode}}}(),e.defer=function(t){return setTimeout(t,1)},e.throttle=function(t){var e;return e=null,function(){var r;return r=1<=arguments.length?o.call(arguments,0):[],null!=e?e:e=requestAnimationFrame(function(n){return function(){return e=null,t.apply(n,r)}}(this))}},e.dispatch=function(t,e){var r,o,i,s,a,u;return a=null!=e?e:{},u=a.target,r=a.cancelable,o=a.data,i=document.createEvent(\"Events\"),i.initEvent(t,!0,r===!0),i.data=null!=o?o:{},i.cancelable&&!n&&(s=i.preventDefault,i.preventDefault=function(){return this.defaultPrevented||Object.defineProperty(this,\"defaultPrevented\",{get:function(){return!0}}),s.call(this)}),(null!=u?u:document).dispatchEvent(i),i},n=function(){var t;return t=document.createEvent(\"Events\"),t.initEvent(\"test\",!0,!0),t.preventDefault(),t.defaultPrevented}(),e.match=function(t,e){return r.call(t,e)},r=function(){var t,e,r,n;return t=document.documentElement,null!=(e=null!=(r=null!=(n=t.matchesSelector)?n:t.webkitMatchesSelector)?r:t.msMatchesSelector)?e:t.mozMatchesSelector}(),e.uuid=function(){var t,e,r;for(r=\"\",t=e=1;36>=e;t=++e)r+=9===t||14===t||19===t||24===t?\"-\":15===t?\"4\":20===t?(Math.floor(4*Math.random())+8).toString(16):Math.floor(15*Math.random()).toString(16);return r}}).call(this),function(){e.Location=function(){function t(t){var e,r;null==t&&(t=\"\"),r=document.createElement(\"a\"),r.href=t.toString(),this.absoluteURL=r.href,e=r.hash.length,2>e?this.requestURL=this.absoluteURL:(this.requestURL=this.absoluteURL.slice(0,-e),this.anchor=r.hash.slice(1))}var e,r,n,o;return t.wrap=function(t){return t instanceof this?t:new this(t)},t.prototype.getOrigin=function(){return this.absoluteURL.split(\"/\",3).join(\"/\")},t.prototype.getPath=function(){var t,e;return null!=(t=null!=(e=this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/))?e[1]:void 0)?t:\"/\"},t.prototype.getPathComponents=function(){return this.getPath().split(\"/\").slice(1)},t.prototype.getLastPathComponent=function(){return this.getPathComponents().slice(-1)[0]},t.prototype.getExtension=function(){var t,e;return null!=(t=null!=(e=this.getLastPathComponent().match(/\\.[^.]*$/))?e[0]:void 0)?t:\"\"},t.prototype.isHTML=function(){return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/)},t.prototype.isPrefixedBy=function(t){var e;return e=r(t),this.isEqualTo(t)||o(this.absoluteURL,e)},t.prototype.isEqualTo=function(t){return this.absoluteURL===(null!=t?t.absoluteURL:void 0)},t.prototype.toCacheKey=function(){return this.requestURL},t.prototype.toJSON=function(){return this.absoluteURL},t.prototype.toString=function(){return this.absoluteURL},t.prototype.valueOf=function(){return this.absoluteURL},r=function(t){return e(t.getOrigin()+t.getPath())},e=function(t){return n(t,\"/\")?t:t+\"/\"},o=function(t,e){return t.slice(0,e.length)===e},n=function(t,e){return t.slice(-e.length)===e},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.HttpRequest=function(){function r(r,n,o){this.delegate=r,this.requestCanceled=t(this.requestCanceled,this),this.requestTimedOut=t(this.requestTimedOut,this),this.requestFailed=t(this.requestFailed,this),this.requestLoaded=t(this.requestLoaded,this),this.requestProgressed=t(this.requestProgressed,this),this.url=e.Location.wrap(n).requestURL,this.referrer=e.Location.wrap(o).absoluteURL,this.createXHR()}return r.NETWORK_FAILURE=0,r.TIMEOUT_FAILURE=-1,r.timeout=60,r.prototype.send=function(){var t;return this.xhr&&!this.sent?(this.notifyApplicationBeforeRequestStart(),this.setProgress(0),this.xhr.send(),this.sent=!0,\"function\"==typeof(t=this.delegate).requestStarted?t.requestStarted():void 0):void 0},r.prototype.cancel=function(){return this.xhr&&this.sent?this.xhr.abort():void 0},r.prototype.requestProgressed=function(t){return t.lengthComputable?this.setProgress(t.loaded/t.total):void 0},r.prototype.requestLoaded=function(){return this.endRequest(function(t){return function(){var e;return 200<=(e=t.xhr.status)&&300>e?t.delegate.requestCompletedWithResponse(t.xhr.responseText,t.xhr.getResponseHeader(\"Turbolinks-Location\")):(t.failed=!0,t.delegate.requestFailedWithStatusCode(t.xhr.status,t.xhr.responseText))}}(this))},r.prototype.requestFailed=function(){return this.endRequest(function(t){return function(){return t.failed=!0,t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE)}}(this))},r.prototype.requestTimedOut=function(){return this.endRequest(function(t){return function(){return t.failed=!0,t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE)}}(this))},r.prototype.requestCanceled=function(){return this.endRequest()},r.prototype.notifyApplicationBeforeRequestStart=function(){return e.dispatch(\"turbolinks:request-start\",{data:{url:this.url,xhr:this.xhr}})},r.prototype.notifyApplicationAfterRequestEnd=function(){return e.dispatch(\"turbolinks:request-end\",{data:{url:this.url,xhr:this.xhr}})},r.prototype.createXHR=function(){return this.xhr=new XMLHttpRequest,this.xhr.open(\"GET\",this.url,!0),this.xhr.timeout=1e3*this.constructor.timeout,this.xhr.setRequestHeader(\"Accept\",\"text/html, application/xhtml+xml\"),this.xhr.setRequestHeader(\"Turbolinks-Referrer\",this.referrer),this.xhr.onprogress=this.requestProgressed,this.xhr.onload=this.requestLoaded,this.xhr.onerror=this.requestFailed,this.xhr.ontimeout=this.requestTimedOut,this.xhr.onabort=this.requestCanceled},r.prototype.endRequest=function(t){return this.xhr?(this.notifyApplicationAfterRequestEnd(),null!=t&&t.call(this),this.destroy()):void 0},r.prototype.setProgress=function(t){var e;return this.progress=t,\"function\"==typeof(e=this.delegate).requestProgressed?e.requestProgressed(this.progress):void 0},r.prototype.destroy=function(){var t;return this.setProgress(1),\"function\"==typeof(t=this.delegate).requestFinished&&t.requestFinished(),this.delegate=null,this.xhr=null},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.ProgressBar=function(){function e(){this.trickle=t(this.trickle,this),this.stylesheetElement=this.createStylesheetElement(),this.progressElement=this.createProgressElement()}var r;return r=300,e.defaultCSS=\".turbolinks-progress-bar {\\n  position: fixed;\\n  display: block;\\n  top: 0;\\n  left: 0;\\n  height: 3px;\\n  background: #0076ff;\\n  z-index: 9999;\\n  transition: width \"+r+\"ms ease-out, opacity \"+r/2+\"ms \"+r/2+\"ms ease-in;\\n  transform: translate3d(0, 0, 0);\\n}\",e.prototype.show=function(){return this.visible?void 0:(this.visible=!0,this.installStylesheetElement(),this.installProgressElement(),this.startTrickling())},e.prototype.hide=function(){return this.visible&&!this.hiding?(this.hiding=!0,this.fadeProgressElement(function(t){return function(){return t.uninstallProgressElement(),t.stopTrickling(),t.visible=!1,t.hiding=!1}}(this))):void 0},e.prototype.setValue=function(t){return this.value=t,this.refresh()},e.prototype.installStylesheetElement=function(){return document.head.insertBefore(this.stylesheetElement,document.head.firstChild)},e.prototype.installProgressElement=function(){return this.progressElement.style.width=0,this.progressElement.style.opacity=1,document.documentElement.insertBefore(this.progressElement,document.body),this.refresh()},e.prototype.fadeProgressElement=function(t){return this.progressElement.style.opacity=0,setTimeout(t,1.5*r)},e.prototype.uninstallProgressElement=function(){return this.progressElement.parentNode?document.documentElement.removeChild(this.progressElement):void 0},e.prototype.startTrickling=function(){return null!=this.trickleInterval?this.trickleInterval:this.trickleInterval=setInterval(this.trickle,r)},e.prototype.stopTrickling=function(){return clearInterval(this.trickleInterval),this.trickleInterval=null},e.prototype.trickle=function(){return this.setValue(this.value+Math.random()/100)},e.prototype.refresh=function(){return requestAnimationFrame(function(t){return function(){return t.progressElement.style.width=10+90*t.value+\"%\"}}(this))},e.prototype.createStylesheetElement=function(){var t;return t=document.createElement(\"style\"),t.type=\"text/css\",t.textContent=this.constructor.defaultCSS,t},e.prototype.createProgressElement=function(){var t;return t=document.createElement(\"div\"),t.className=\"turbolinks-progress-bar\",t},e}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.BrowserAdapter=function(){function r(r){this.controller=r,this.showProgressBar=t(this.showProgressBar,this),this.progressBar=new e.ProgressBar}var n,o,i;return i=e.HttpRequest,n=i.NETWORK_FAILURE,o=i.TIMEOUT_FAILURE,r.prototype.visitProposedToLocationWithAction=function(t,e){return this.controller.startVisitToLocationWithAction(t,e)},r.prototype.visitStarted=function(t){return t.issueRequest(),t.changeHistory(),t.loadCachedSnapshot()},r.prototype.visitRequestStarted=function(t){return this.progressBar.setValue(0),t.hasCachedSnapshot()||\"restore\"!==t.action?this.showProgressBarAfterDelay():this.showProgressBar()},r.prototype.visitRequestProgressed=function(t){return this.progressBar.setValue(t.progress)},r.prototype.visitRequestCompleted=function(t){return t.loadResponse()},r.prototype.visitRequestFailedWithStatusCode=function(t,e){switch(e){case n:case o:return this.reload();default:return t.loadResponse()}},r.prototype.visitRequestFinished=function(t){return this.hideProgressBar()},r.prototype.visitCompleted=function(t){return t.followRedirect()},r.prototype.pageInvalidated=function(){return this.reload()},r.prototype.showProgressBarAfterDelay=function(){return this.progressBarTimeout=setTimeout(this.showProgressBar,this.controller.progressBarDelay)},r.prototype.showProgressBar=function(){return this.progressBar.show()},r.prototype.hideProgressBar=function(){return this.progressBar.hide(),clearTimeout(this.progressBarTimeout)},r.prototype.reload=function(){return window.location.reload()},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.History=function(){function r(e){this.delegate=e,this.onPageLoad=t(this.onPageLoad,this),this.onPopState=t(this.onPopState,this)}return r.prototype.start=function(){return this.started?void 0:(addEventListener(\"popstate\",this.onPopState,!1),addEventListener(\"load\",this.onPageLoad,!1),this.started=!0)},r.prototype.stop=function(){return this.started?(removeEventListener(\"popstate\",this.onPopState,!1),removeEventListener(\"load\",this.onPageLoad,!1),this.started=!1):void 0},r.prototype.push=function(t,r){return t=e.Location.wrap(t),this.update(\"push\",t,r)},r.prototype.replace=function(t,r){return t=e.Location.wrap(t),this.update(\"replace\",t,r)},r.prototype.onPopState=function(t){var r,n,o,i;return this.shouldHandlePopState()&&(i=null!=(n=t.state)?n.turbolinks:void 0)?(r=e.Location.wrap(window.location),o=i.restorationIdentifier,this.delegate.historyPoppedToLocationWithRestorationIdentifier(r,o)):void 0},r.prototype.onPageLoad=function(t){return e.defer(function(t){return function(){return t.pageLoaded=!0}}(this))},r.prototype.shouldHandlePopState=function(){return this.pageIsLoaded()},r.prototype.pageIsLoaded=function(){return this.pageLoaded||\"complete\"===document.readyState},r.prototype.update=function(t,e,r){var n;return n={turbolinks:{restorationIdentifier:r}},history[t+\"State\"](n,null,e)},r}()}.call(this),function(){e.HeadDetails=function(){function t(t){var e,r,n,s,a,u;for(this.elements={},n=0,a=t.length;a>n;n++)u=t[n],u.nodeType===Node.ELEMENT_NODE&&(s=u.outerHTML,r=null!=(e=this.elements)[s]?e[s]:e[s]={type:i(u),tracked:o(u),elements:[]},r.elements.push(u))}var e,r,n,o,i;return t.fromHeadElement=function(t){var e;return new this(null!=(e=null!=t?t.childNodes:void 0)?e:[])},t.prototype.hasElementWithKey=function(t){return t in this.elements},t.prototype.getTrackedElementSignature=function(){var t,e;return function(){var r,n;r=this.elements,n=[];for(t in r)e=r[t].tracked,e&&n.push(t);return n}.call(this).join(\"\")},t.prototype.getScriptElementsNotInDetails=function(t){return this.getElementsMatchingTypeNotInDetails(\"script\",t)},t.prototype.getStylesheetElementsNotInDetails=function(t){return this.getElementsMatchingTypeNotInDetails(\"stylesheet\",t)},t.prototype.getElementsMatchingTypeNotInDetails=function(t,e){var r,n,o,i,s,a;o=this.elements,s=[];for(n in o)i=o[n],a=i.type,r=i.elements,a!==t||e.hasElementWithKey(n)||s.push(r[0]);return s},t.prototype.getProvisionalElements=function(){var t,e,r,n,o,i,s;r=[],n=this.elements;for(e in n)o=n[e],s=o.type,i=o.tracked,t=o.elements,null!=s||i?t.length>1&&r.push.apply(r,t.slice(1)):r.push.apply(r,t);return r},t.prototype.getMetaValue=function(t){var e;return null!=(e=this.findMetaElementByName(t))?e.getAttribute(\"content\"):void 0},t.prototype.findMetaElementByName=function(t){var r,n,o,i;r=void 0,i=this.elements;for(o in i)n=i[o].elements,e(n[0],t)&&(r=n[0]);return r},i=function(t){return r(t)?\"script\":n(t)?\"stylesheet\":void 0},o=function(t){return\"reload\"===t.getAttribute(\"data-turbolinks-track\")},r=function(t){var e;return e=t.tagName.toLowerCase(),\"script\"===e},n=function(t){var e;return e=t.tagName.toLowerCase(),\"style\"===e||\"link\"===e&&\"stylesheet\"===t.getAttribute(\"rel\")},e=function(t,e){var r;return r=t.tagName.toLowerCase(),\"meta\"===r&&t.getAttribute(\"name\")===e},t}()}.call(this),function(){e.Snapshot=function(){function t(t,e){this.headDetails=t,this.bodyElement=e}return t.wrap=function(t){return t instanceof this?t:\"string\"==typeof t?this.fromHTMLString(t):this.fromHTMLElement(t)},t.fromHTMLString=function(t){var e;return e=document.createElement(\"html\"),e.innerHTML=t,this.fromHTMLElement(e)},t.fromHTMLElement=function(t){var r,n,o,i;return o=t.querySelector(\"head\"),r=null!=(i=t.querySelector(\"body\"))?i:document.createElement(\"body\"),n=e.HeadDetails.fromHeadElement(o),new this(n,r)},t.prototype.clone=function(){return new this.constructor(this.headDetails,this.bodyElement.cloneNode(!0))},t.prototype.getRootLocation=function(){var t,r;return r=null!=(t=this.getSetting(\"root\"))?t:\"/\",new e.Location(r)},t.prototype.getCacheControlValue=function(){return this.getSetting(\"cache-control\")},t.prototype.getElementForAnchor=function(t){try{return this.bodyElement.querySelector(\"[id='\"+t+\"'], a[name='\"+t+\"']\")}catch(e){}},t.prototype.getPermanentElements=function(){return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\")},t.prototype.getPermanentElementById=function(t){return this.bodyElement.querySelector(\"#\"+t+\"[data-turbolinks-permanent]\")},t.prototype.getPermanentElementsPresentInSnapshot=function(t){var e,r,n,o,i;for(o=this.getPermanentElements(),i=[],r=0,n=o.length;n>r;r++)e=o[r],t.getPermanentElementById(e.id)&&i.push(e);return i},t.prototype.findFirstAutofocusableElement=function(){return this.bodyElement.querySelector(\"[autofocus]\")},t.prototype.hasAnchor=function(t){return null!=this.getElementForAnchor(t)},t.prototype.isPreviewable=function(){return\"no-preview\"!==this.getCacheControlValue()},t.prototype.isCacheable=function(){return\"no-cache\"!==this.getCacheControlValue()},t.prototype.isVisitable=function(){return\"reload\"!==this.getSetting(\"visit-control\")},t.prototype.getSetting=function(t){return this.headDetails.getMetaValue(\"turbolinks-\"+t)},t}()}.call(this),function(){var t=[].slice;e.Renderer=function(){function e(){}var r;return e.render=function(){var e,r,n,o;return n=arguments[0],r=arguments[1],e=3<=arguments.length?t.call(arguments,2):[],o=function(t,e,r){r.prototype=t.prototype;var n=new r,o=t.apply(n,e);return Object(o)===o?o:n}(this,e,function(){}),o.delegate=n,o.render(r),o},e.prototype.renderView=function(t){return this.delegate.viewWillRender(this.newBody),t(),this.delegate.viewRendered(this.newBody)},e.prototype.invalidateView=function(){return this.delegate.viewInvalidated()},e.prototype.createScriptElement=function(t){var e;return\"false\"===t.getAttribute(\"data-turbolinks-eval\")?t:(e=document.createElement(\"script\"),e.textContent=t.textContent,e.async=!1,r(e,t),e)},r=function(t,e){var r,n,o,i,s,a,u;for(i=e.attributes,a=[],r=0,n=i.length;n>r;r++)s=i[r],o=s.name,u=s.value,a.push(t.setAttribute(o,u));return a},e}()}.call(this),function(){var t,r,n=function(t,e){function r(){this.constructor=t}for(var n in e)o.call(e,n)&&(t[n]=e[n]);return r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype,t},o={}.hasOwnProperty;e.SnapshotRenderer=function(e){function o(t,e,r){this.currentSnapshot=t,this.newSnapshot=e,this.isPreview=r,this.currentHeadDetails=this.currentSnapshot.headDetails,this.newHeadDetails=this.newSnapshot.headDetails,this.currentBody=this.currentSnapshot.bodyElement,this.newBody=this.newSnapshot.bodyElement}return n(o,e),o.prototype.render=function(t){return this.shouldRender()?(this.mergeHead(),this.renderView(function(e){return function(){return e.replaceBody(),e.isPreview||e.focusFirstAutofocusableElement(),t()}}(this))):this.invalidateView()},o.prototype.mergeHead=function(){return this.copyNewHeadStylesheetElements(),this.copyNewHeadScriptElements(),this.removeCurrentHeadProvisionalElements(),this.copyNewHeadProvisionalElements()},o.prototype.replaceBody=function(){var t;return t=this.relocateCurrentBodyPermanentElements(),this.activateNewBodyScriptElements(),this.assignNewBody(),this.replacePlaceholderElementsWithClonedPermanentElements(t)},o.prototype.shouldRender=function(){return this.newSnapshot.isVisitable()&&this.trackedElementsAreIdentical()},o.prototype.trackedElementsAreIdentical=function(){return this.currentHeadDetails.getTrackedElementSignature()===this.newHeadDetails.getTrackedElementSignature()},o.prototype.copyNewHeadStylesheetElements=function(){var t,e,r,n,o;for(n=this.getNewHeadStylesheetElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(t));return o},o.prototype.copyNewHeadScriptElements=function(){var t,e,r,n,o;for(n=this.getNewHeadScriptElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(this.createScriptElement(t)));return o},o.prototype.removeCurrentHeadProvisionalElements=function(){var t,e,r,n,o;for(n=this.getCurrentHeadProvisionalElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.removeChild(t));return o},o.prototype.copyNewHeadProvisionalElements=function(){var t,e,r,n,o;for(n=this.getNewHeadProvisionalElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(t));return o},o.prototype.relocateCurrentBodyPermanentElements=function(){var e,n,o,i,s,a,u;for(a=this.getCurrentBodyPermanentElements(),u=[],e=0,n=a.length;n>e;e++)i=a[e],s=t(i),o=this.newSnapshot.getPermanentElementById(i.id),r(i,s.element),r(o,i),u.push(s);return u},o.prototype.replacePlaceholderElementsWithClonedPermanentElements=function(t){var e,n,o,i,s,a,u;for(u=[],o=0,i=t.length;i>o;o++)a=t[o],n=a.element,s=a.permanentElement,e=s.cloneNode(!0),u.push(r(n,e));return u},o.prototype.activateNewBodyScriptElements=function(){var t,e,n,o,i,s;for(i=this.getNewBodyScriptElements(),s=[],e=0,o=i.length;o>e;e++)n=i[e],t=this.createScriptElement(n),s.push(r(n,t));return s},o.prototype.assignNewBody=function(){return document.body=this.newBody},o.prototype.focusFirstAutofocusableElement=function(){var t;return null!=(t=this.newSnapshot.findFirstAutofocusableElement())?t.focus():void 0},o.prototype.getNewHeadStylesheetElements=function(){return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails)},o.prototype.getNewHeadScriptElements=function(){return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails)},o.prototype.getCurrentHeadProvisionalElements=function(){return this.currentHeadDetails.getProvisionalElements()},o.prototype.getNewHeadProvisionalElements=function(){return this.newHeadDetails.getProvisionalElements()},o.prototype.getCurrentBodyPermanentElements=function(){return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot)},o.prototype.getNewBodyScriptElements=function(){return this.newBody.querySelectorAll(\"script\")},o}(e.Renderer),t=function(t){var e;return e=document.createElement(\"meta\"),e.setAttribute(\"name\",\"turbolinks-permanent-placeholder\"),e.setAttribute(\"content\",t.id),{element:e,permanentElement:t}},r=function(t,e){var r;return(r=t.parentNode)?r.replaceChild(e,t):void 0}}.call(this),function(){var t=function(t,e){function n(){this.constructor=t}for(var o in e)r.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;e.ErrorRenderer=function(e){function r(t){var e;e=document.createElement(\"html\"),e.innerHTML=t,this.newHead=e.querySelector(\"head\"),this.newBody=e.querySelector(\"body\")}return t(r,e),r.prototype.render=function(t){return this.renderView(function(e){return function(){return e.replaceHeadAndBody(),e.activateBodyScriptElements(),t()}}(this))},r.prototype.replaceHeadAndBody=function(){var t,e;return e=document.head,t=document.body,e.parentNode.replaceChild(this.newHead,e),t.parentNode.replaceChild(this.newBody,t)},r.prototype.activateBodyScriptElements=function(){var t,e,r,n,o,i;for(n=this.getScriptElements(),i=[],e=0,r=n.length;r>e;e++)o=n[e],t=this.createScriptElement(o),i.push(o.parentNode.replaceChild(t,o));return i},r.prototype.getScriptElements=function(){return document.documentElement.querySelectorAll(\"script\")},r}(e.Renderer)}.call(this),function(){e.View=function(){function t(t){this.delegate=t,this.htmlElement=document.documentElement}return t.prototype.getRootLocation=function(){return this.getSnapshot().getRootLocation()},t.prototype.getElementForAnchor=function(t){return this.getSnapshot().getElementForAnchor(t)},t.prototype.getSnapshot=function(){return e.Snapshot.fromHTMLElement(this.htmlElement)},t.prototype.render=function(t,e){var r,n,o;return o=t.snapshot,r=t.error,n=t.isPreview,this.markAsPreview(n),null!=o?this.renderSnapshot(o,n,e):this.renderError(r,e)},t.prototype.markAsPreview=function(t){return t?this.htmlElement.setAttribute(\"data-turbolinks-preview\",\"\"):this.htmlElement.removeAttribute(\"data-turbolinks-preview\")},t.prototype.renderSnapshot=function(t,r,n){return e.SnapshotRenderer.render(this.delegate,n,this.getSnapshot(),e.Snapshot.wrap(t),r)},t.prototype.renderError=function(t,r){return e.ErrorRenderer.render(this.delegate,r,t)},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.ScrollManager=function(){function r(r){this.delegate=r,this.onScroll=t(this.onScroll,this),this.onScroll=e.throttle(this.onScroll)}return r.prototype.start=function(){return this.started?void 0:(addEventListener(\"scroll\",this.onScroll,!1),this.onScroll(),this.started=!0)},r.prototype.stop=function(){return this.started?(removeEventListener(\"scroll\",this.onScroll,!1),this.started=!1):void 0},r.prototype.scrollToElement=function(t){return t.scrollIntoView()},r.prototype.scrollToPosition=function(t){var e,r;return e=t.x,r=t.y,window.scrollTo(e,r)},r.prototype.onScroll=function(t){return this.updatePosition({x:window.pageXOffset,y:window.pageYOffset})},r.prototype.updatePosition=function(t){var e;return this.position=t,null!=(e=this.delegate)?e.scrollPositionChanged(this.position):void 0},r}()}.call(this),function(){e.SnapshotCache=function(){function t(t){this.size=t,this.keys=[],this.snapshots={}}var r;return t.prototype.has=function(t){var e;return e=r(t),e in this.snapshots},t.prototype.get=function(t){var e;if(this.has(t))return e=this.read(t),this.touch(t),e},t.prototype.put=function(t,e){return this.write(t,e),this.touch(t),e},t.prototype.read=function(t){var e;return e=r(t),this.snapshots[e]},t.prototype.write=function(t,e){var n;return n=r(t),this.snapshots[n]=e},t.prototype.touch=function(t){var e,n;return n=r(t),e=this.keys.indexOf(n),e>-1&&this.keys.splice(e,1),this.keys.unshift(n),this.trim()},t.prototype.trim=function(){var t,e,r,n,o;for(n=this.keys.splice(this.size),o=[],t=0,r=n.length;r>t;t++)e=n[t],o.push(delete this.snapshots[e]);return o},r=function(t){return e.Location.wrap(t).toCacheKey()},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.Visit=function(){function r(r,n,o){this.controller=r,this.action=o,this.performScroll=t(this.performScroll,this),this.identifier=e.uuid(),this.location=e.Location.wrap(n),this.adapter=this.controller.adapter,this.state=\"initialized\",this.timingMetrics={}}var n;return r.prototype.start=function(){return\"initialized\"===this.state?(this.recordTimingMetric(\"visitStart\"),this.state=\"started\",this.adapter.visitStarted(this)):void 0},r.prototype.cancel=function(){var t;return\"started\"===this.state?(null!=(t=this.request)&&t.cancel(),this.cancelRender(),this.state=\"canceled\"):void 0},r.prototype.complete=function(){var t;return\"started\"===this.state?(this.recordTimingMetric(\"visitEnd\"),this.state=\"completed\",\"function\"==typeof(t=this.adapter).visitCompleted&&t.visitCompleted(this),this.controller.visitCompleted(this)):void 0},r.prototype.fail=function(){var t;return\"started\"===this.state?(this.state=\"failed\",\"function\"==typeof(t=this.adapter).visitFailed?t.visitFailed(this):void 0):void 0},r.prototype.changeHistory=function(){var t,e;return this.historyChanged?void 0:(t=this.location.isEqualTo(this.referrer)?\"replace\":this.action,e=n(t),this.controller[e](this.location,this.restorationIdentifier),this.historyChanged=!0)},r.prototype.issueRequest=function(){return this.shouldIssueRequest()&&null==this.request?(this.progress=0,this.request=new e.HttpRequest(this,this.location,this.referrer),this.request.send()):void 0},r.prototype.getCachedSnapshot=function(){var t;return!(t=this.controller.getCachedSnapshotForLocation(this.location))||null!=this.location.anchor&&!t.hasAnchor(this.location.anchor)||\"restore\"!==this.action&&!t.isPreviewable()?void 0:t},r.prototype.hasCachedSnapshot=function(){return null!=this.getCachedSnapshot()},r.prototype.loadCachedSnapshot=function(){var t,e;return(e=this.getCachedSnapshot())?(t=this.shouldIssueRequest(),this.render(function(){var r;return this.cacheSnapshot(),this.controller.render({snapshot:e,isPreview:t},this.performScroll),\"function\"==typeof(r=this.adapter).visitRendered&&r.visitRendered(this),t?void 0:this.complete()})):void 0},r.prototype.loadResponse=function(){return null!=this.response?this.render(function(){var t,e;return this.cacheSnapshot(),this.request.failed?(this.controller.render({error:this.response},this.performScroll),\"function\"==typeof(t=this.adapter).visitRendered&&t.visitRendered(this),this.fail()):(this.controller.render({snapshot:this.response},this.performScroll),\"function\"==typeof(e=this.adapter).visitRendered&&e.visitRendered(this),this.complete())}):void 0},r.prototype.followRedirect=function(){return this.redirectedToLocation&&!this.followedRedirect?(this.location=this.redirectedToLocation,this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation,this.restorationIdentifier),this.followedRedirect=!0):void 0},r.prototype.requestStarted=function(){var t;return this.recordTimingMetric(\"requestStart\"),\"function\"==typeof(t=this.adapter).visitRequestStarted?t.visitRequestStarted(this):void 0},r.prototype.requestProgressed=function(t){var e;return this.progress=t,\"function\"==typeof(e=this.adapter).visitRequestProgressed?e.visitRequestProgressed(this):void 0},r.prototype.requestCompletedWithResponse=function(t,r){return this.response=t,null!=r&&(this.redirectedToLocation=e.Location.wrap(r)),this.adapter.visitRequestCompleted(this)},r.prototype.requestFailedWithStatusCode=function(t,e){return this.response=e,this.adapter.visitRequestFailedWithStatusCode(this,t)},r.prototype.requestFinished=function(){var t;return this.recordTimingMetric(\"requestEnd\"),\"function\"==typeof(t=this.adapter).visitRequestFinished?t.visitRequestFinished(this):void 0},r.prototype.performScroll=function(){return this.scrolled?void 0:(\"restore\"===this.action?this.scrollToRestoredPosition()||this.scrollToTop():this.scrollToAnchor()||this.scrollToTop(),this.scrolled=!0)},r.prototype.scrollToRestoredPosition=function(){var t,e;return t=null!=(e=this.restorationData)?e.scrollPosition:void 0,null!=t?(this.controller.scrollToPosition(t),!0):void 0},r.prototype.scrollToAnchor=function(){return null!=this.location.anchor?(this.controller.scrollToAnchor(this.location.anchor),!0):void 0},r.prototype.scrollToTop=function(){return this.controller.scrollToPosition({x:0,y:0})},r.prototype.recordTimingMetric=function(t){var e;return null!=(e=this.timingMetrics)[t]?e[t]:e[t]=(new Date).getTime()},r.prototype.getTimingMetrics=function(){return e.copyObject(this.timingMetrics)},n=function(t){switch(t){case\"replace\":return\"replaceHistoryWithLocationAndRestorationIdentifier\";case\"advance\":case\"restore\":return\"pushHistoryWithLocationAndRestorationIdentifier\"}},r.prototype.shouldIssueRequest=function(){return\"restore\"===this.action?!this.hasCachedSnapshot():!0},r.prototype.cacheSnapshot=function(){return this.snapshotCached?void 0:(this.controller.cacheSnapshot(),this.snapshotCached=!0)},r.prototype.render=function(t){return this.cancelRender(),this.frame=requestAnimationFrame(function(e){return function(){return e.frame=null,t.call(e)}}(this))},r.prototype.cancelRender=function(){return this.frame?cancelAnimationFrame(this.frame):void 0},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.Controller=function(){function r(){this.clickBubbled=t(this.clickBubbled,this),this.clickCaptured=t(this.clickCaptured,this),this.pageLoaded=t(this.pageLoaded,this),this.history=new e.History(this),this.view=new e.View(this),this.scrollManager=new e.ScrollManager(this),this.restorationData={},this.clearCache(),this.setProgressBarDelay(500)}return r.prototype.start=function(){return e.supported&&!this.started?(addEventListener(\"click\",this.clickCaptured,!0),addEventListener(\"DOMContentLoaded\",this.pageLoaded,!1),this.scrollManager.start(),this.startHistory(),this.started=!0,this.enabled=!0):void 0},r.prototype.disable=function(){return this.enabled=!1},r.prototype.stop=function(){return this.started?(removeEventListener(\"click\",this.clickCaptured,!0),removeEventListener(\"DOMContentLoaded\",this.pageLoaded,!1),this.scrollManager.stop(),this.stopHistory(),this.started=!1):void 0},r.prototype.clearCache=function(){return this.cache=new e.SnapshotCache(10)},r.prototype.visit=function(t,r){var n,o;return null==r&&(r={}),t=e.Location.wrap(t),this.applicationAllowsVisitingLocation(t)?this.locationIsVisitable(t)?(n=null!=(o=r.action)?o:\"advance\",this.adapter.visitProposedToLocationWithAction(t,n)):window.location=t:void 0},r.prototype.startVisitToLocationWithAction=function(t,r,n){var o;return e.supported?(o=this.getRestorationDataForIdentifier(n),this.startVisit(t,r,{restorationData:o})):window.location=t},r.prototype.setProgressBarDelay=function(t){return this.progressBarDelay=t},r.prototype.startHistory=function(){return this.location=e.Location.wrap(window.location),this.restorationIdentifier=e.uuid(),this.history.start(),this.history.replace(this.location,this.restorationIdentifier)},r.prototype.stopHistory=function(){return this.history.stop()},r.prototype.pushHistoryWithLocationAndRestorationIdentifier=function(t,r){return this.restorationIdentifier=r,this.location=e.Location.wrap(t),this.history.push(this.location,this.restorationIdentifier)},r.prototype.replaceHistoryWithLocationAndRestorationIdentifier=function(t,r){return this.restorationIdentifier=r,this.location=e.Location.wrap(t),this.history.replace(this.location,this.restorationIdentifier)},r.prototype.historyPoppedToLocationWithRestorationIdentifier=function(t,r){var n;return this.restorationIdentifier=r,this.enabled?(n=this.getRestorationDataForIdentifier(this.restorationIdentifier),this.startVisit(t,\"restore\",{restorationIdentifier:this.restorationIdentifier,restorationData:n,historyChanged:!0}),this.location=e.Location.wrap(t)):this.adapter.pageInvalidated()},r.prototype.getCachedSnapshotForLocation=function(t){var e;return null!=(e=this.cache.get(t))?e.clone():void 0},r.prototype.shouldCacheSnapshot=function(){return this.view.getSnapshot().isCacheable();\n},r.prototype.cacheSnapshot=function(){var t,r;return this.shouldCacheSnapshot()?(this.notifyApplicationBeforeCachingSnapshot(),r=this.view.getSnapshot(),t=this.lastRenderedLocation,e.defer(function(e){return function(){return e.cache.put(t,r.clone())}}(this))):void 0},r.prototype.scrollToAnchor=function(t){var e;return(e=this.view.getElementForAnchor(t))?this.scrollToElement(e):this.scrollToPosition({x:0,y:0})},r.prototype.scrollToElement=function(t){return this.scrollManager.scrollToElement(t)},r.prototype.scrollToPosition=function(t){return this.scrollManager.scrollToPosition(t)},r.prototype.scrollPositionChanged=function(t){var e;return e=this.getCurrentRestorationData(),e.scrollPosition=t},r.prototype.render=function(t,e){return this.view.render(t,e)},r.prototype.viewInvalidated=function(){return this.adapter.pageInvalidated()},r.prototype.viewWillRender=function(t){return this.notifyApplicationBeforeRender(t)},r.prototype.viewRendered=function(){return this.lastRenderedLocation=this.currentVisit.location,this.notifyApplicationAfterRender()},r.prototype.pageLoaded=function(){return this.lastRenderedLocation=this.location,this.notifyApplicationAfterPageLoad()},r.prototype.clickCaptured=function(){return removeEventListener(\"click\",this.clickBubbled,!1),addEventListener(\"click\",this.clickBubbled,!1)},r.prototype.clickBubbled=function(t){var e,r,n;return this.enabled&&this.clickEventIsSignificant(t)&&(r=this.getVisitableLinkForNode(t.target))&&(n=this.getVisitableLocationForLink(r))&&this.applicationAllowsFollowingLinkToLocation(r,n)?(t.preventDefault(),e=this.getActionForLink(r),this.visit(n,{action:e})):void 0},r.prototype.applicationAllowsFollowingLinkToLocation=function(t,e){var r;return r=this.notifyApplicationAfterClickingLinkToLocation(t,e),!r.defaultPrevented},r.prototype.applicationAllowsVisitingLocation=function(t){var e;return e=this.notifyApplicationBeforeVisitingLocation(t),!e.defaultPrevented},r.prototype.notifyApplicationAfterClickingLinkToLocation=function(t,r){return e.dispatch(\"turbolinks:click\",{target:t,data:{url:r.absoluteURL},cancelable:!0})},r.prototype.notifyApplicationBeforeVisitingLocation=function(t){return e.dispatch(\"turbolinks:before-visit\",{data:{url:t.absoluteURL},cancelable:!0})},r.prototype.notifyApplicationAfterVisitingLocation=function(t){return e.dispatch(\"turbolinks:visit\",{data:{url:t.absoluteURL}})},r.prototype.notifyApplicationBeforeCachingSnapshot=function(){return e.dispatch(\"turbolinks:before-cache\")},r.prototype.notifyApplicationBeforeRender=function(t){return e.dispatch(\"turbolinks:before-render\",{data:{newBody:t}})},r.prototype.notifyApplicationAfterRender=function(){return e.dispatch(\"turbolinks:render\")},r.prototype.notifyApplicationAfterPageLoad=function(t){return null==t&&(t={}),e.dispatch(\"turbolinks:load\",{data:{url:this.location.absoluteURL,timing:t}})},r.prototype.startVisit=function(t,e,r){var n;return null!=(n=this.currentVisit)&&n.cancel(),this.currentVisit=this.createVisit(t,e,r),this.currentVisit.start(),this.notifyApplicationAfterVisitingLocation(t)},r.prototype.createVisit=function(t,r,n){var o,i,s,a,u;return i=null!=n?n:{},a=i.restorationIdentifier,s=i.restorationData,o=i.historyChanged,u=new e.Visit(this,t,r),u.restorationIdentifier=null!=a?a:e.uuid(),u.restorationData=e.copyObject(s),u.historyChanged=o,u.referrer=this.location,u},r.prototype.visitCompleted=function(t){return this.notifyApplicationAfterPageLoad(t.getTimingMetrics())},r.prototype.clickEventIsSignificant=function(t){return!(t.defaultPrevented||t.target.isContentEditable||t.which>1||t.altKey||t.ctrlKey||t.metaKey||t.shiftKey)},r.prototype.getVisitableLinkForNode=function(t){return this.nodeIsVisitable(t)?e.closest(t,\"a[href]:not([target]):not([download])\"):void 0},r.prototype.getVisitableLocationForLink=function(t){var r;return r=new e.Location(t.getAttribute(\"href\")),this.locationIsVisitable(r)?r:void 0},r.prototype.getActionForLink=function(t){var e;return null!=(e=t.getAttribute(\"data-turbolinks-action\"))?e:\"advance\"},r.prototype.nodeIsVisitable=function(t){var r;return(r=e.closest(t,\"[data-turbolinks]\"))?\"false\"!==r.getAttribute(\"data-turbolinks\"):!0},r.prototype.locationIsVisitable=function(t){return t.isPrefixedBy(this.view.getRootLocation())&&t.isHTML()},r.prototype.getCurrentRestorationData=function(){return this.getRestorationDataForIdentifier(this.restorationIdentifier)},r.prototype.getRestorationDataForIdentifier=function(t){var e;return null!=(e=this.restorationData)[t]?e[t]:e[t]={}},r}()}.call(this),function(){!function(){var t,e;if((t=e=document.currentScript)&&!e.hasAttribute(\"data-turbolinks-suppress-warning\"))for(;t=t.parentNode;)if(t===document.body)return console.warn(\"You are loading Turbolinks from a <script> element inside the <body> element. This is probably not what you meant to do!\\n\\nLoad your application\\u2019s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change.\\n\\nFor more information, see: https://github.com/turbolinks/turbolinks#working-with-script-elements\\n\\n\\u2014\\u2014\\nSuppress this warning by adding a `data-turbolinks-suppress-warning` attribute to: %s\",e.outerHTML)}()}.call(this),function(){var t,r,n;e.start=function(){return r()?(null==e.controller&&(e.controller=t()),e.controller.start()):void 0},r=function(){return null==window.Turbolinks&&(window.Turbolinks=e),n()},t=function(){var t;return t=new e.Controller,t.adapter=new e.BrowserAdapter(t),t},n=function(){return window.Turbolinks===e},n()&&e.start()}.call(this)}).call(this),\"object\"==typeof module&&module.exports?module.exports=e:\"function\"==typeof define&&define.amd&&define(e)}).call(this);", "import './lib/commons'\nimport './lib/i18n'\nimport './gobierto_cms'\n", "// Run this files BEFORE everything to avoid JS \"imports\" hoisting\nimport './modules/jquery';\nimport './modules/i18n';\n\nimport Rails from \"@rails/ujs\";\nRails.start()\n\n// NOTE: these modules are required for the legacy views\nimport './modules/module-search';\nimport './modules/module-sessions';\nimport './modules/module-site_header';\nimport './modules/magnific-popup';\nimport './modules/globals.js';\nimport './modules/tabs';\nimport './modules/velocity_settings';\nimport './modules/shareContent';\nimport './modules/separate-tabs';\nimport './modules/check-start-turbolinks';\nimport './modules/iframe_handler';\n", "// Do that to avoid JS \"imports\" hoisting\n// https://gorails.com/episodes/how-to-use-jquery-with-esbuild\nimport $ from 'jquery'\n\nwindow.$ = $\nwindow.jQuery = $\n", "// Do that to avoid JS \"imports\" hoisting\nimport I18n from 'i18n-js'\n\nwindow.I18n = I18n\n", "import 'devbridge-autocomplete';\nimport { AUTOCOMPLETE_DEFAULTS } from '../../../lib/shared';\n\n$(document).on('turbolinks:load', function() {\n  var $input = $('input#gobierto_search:visible');\n  var $mobile_input = $('input#gobierto_search_mobile');\n\n  function truncateOnWord(str, limit) {\n    var trimmable = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u2028\\u2029\\u3000\\uFEFF';\n    var reg = new RegExp('(?=[' + trimmable + '])');\n    var words = str.split(reg);\n    var count = 0;\n    return words.filter(function(word) {\n      count += word.length;\n      return count <= limit;\n    }).join('');\n  }\n\n  function itemUpdatedAt(d){\n    if (d['searchable_updated_at'] == null)\n      return;\n\n    return `${I18n.t(\"layouts.search.updated\")}: ${I18n.l(\"date.formats.short\", d['searchable_updated_at'])}`;\n  }\n\n  function itemDescription(d){\n    var maxLength = 200;\n    var description = (d['description'] || '');\n    if (description === '' || description.length < maxLength)\n      return description;\n    return truncateOnWord(description, maxLength) + '...';\n  }\n\n  function itemType(d){\n    let class_name = d['class_name'] || d['searchable_type']\n    if (class_name === undefined)\n      return;\n\n    switch (class_name){\n      case 'GobiertoPeople::Person':\n        return I18n.t(\"layouts.search.person_item\");\n      case 'GobiertoPeople::PersonPost':\n        return I18n.t(\"layouts.search.person_post_item\");\n      case 'GobiertoCalendars::Event':\n        return I18n.t(\"layouts.search.event_item\");\n      case 'GobiertoPeople::PersonStatement':\n        return I18n.t(\"layouts.search.person_statement_item\");\n      case 'GobiertoCms::Page':\n        return I18n.t(\"layouts.search.page_item\");\n      case 'GobiertoBudgets::BudgetLine':\n        if (d[\"meta\"] != null && d['meta']['kind'] === 'I') {\n          return I18n.t(\"layouts.search.budget_line_item_income\");\n        } else {\n          return I18n.t(\"layouts.search.budget_line_item_expense\");\n        }\n      case 'GobiertoPlans::Node':\n        return I18n.t(\"layouts.search.plan_project_item\");\n      case 'GobiertoData::Dataset':\n        return I18n.t(\"layouts.search.dataset_item\");\n    }\n  }\n\n  function formattedResult(d){\n    return `<a class=\"result\" href=\"${d['resource_path']}\" data-turbolinks=\"false\">\n             <h2>${d['title']}</h2>\n             <div class=\"description\">\n               <div>${itemDescription(d)}</div>\n               <span class=\"soft item_type\">${itemType(d)}</span>\n               ${itemUpdatedAt(d) ? ` \u00B7 <span class=\"soft updated_at\">${itemUpdatedAt(d)}</span>` : ''}\n             </div>\n           </a>`\n  }\n\n  var searchOptions = {\n    serviceUrl: '/api/v1/search',\n    dataType: 'json',\n    params: window.searchClient === undefined ?\n      {} :\n      {\n        filters:\n          {\n            searchable_type: window.searchClient.searchable_types\n          }\n      },\n    beforeRender(container) {\n      container.css({ width: '100%' })\n    },\n    transformResult: function(response) {\n      return {\n        suggestions: response.data.map(item => ({\n          value: item.attributes.title,\n          data: item.attributes\n        }))\n      }\n    },\n    formatResult: function(suggestion){\n      return formattedResult(suggestion.data)\n    },\n    noSuggestionNotice: `<div class=\"result\"><p>${ I18n.t(\"layouts.search.no_results\") }</p></div>`\n  };\n\n  $input.devbridgeAutocomplete($.extend({ appendTo: $input.parent() }, AUTOCOMPLETE_DEFAULTS, searchOptions));\n  $mobile_input.devbridgeAutocomplete($.extend({ appendTo: $mobile_input.parent() }, AUTOCOMPLETE_DEFAULTS, searchOptions));\n});\n", "/**\n*  Ajax Autocomplete for jQuery, version 2.0.1\n*  (c) 2025 Tomas Kirda\n*\n*  Ajax Autocomplete for jQuery is freely distributable under the terms of an MIT-style license.\n*  For details, see the web site: https://github.com/devbridge/jQuery-Autocomplete\n*/\n\n// src/index.ts\nimport jQuery from \"jquery\";\n\n// src/jquery-ref.ts\nvar $ = null;\nfunction setJQuery(jq) {\n  $ = jq;\n}\n\n// src/utils.ts\nvar utils = {\n  escapeRegExChars(value) {\n    return value.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\");\n  },\n  createNode(containerClass) {\n    const div = document.createElement(\"div\");\n    div.className = containerClass;\n    div.style.position = \"absolute\";\n    div.style.display = \"none\";\n    return div;\n  }\n};\nvar keys = {\n  ESC: 27,\n  TAB: 9,\n  RETURN: 13,\n  LEFT: 37,\n  UP: 38,\n  RIGHT: 39,\n  DOWN: 40\n};\n\n// src/format.ts\nfunction lookupFilter(suggestion, _originalQuery, queryLowerCase) {\n  return suggestion.value.toLowerCase().indexOf(queryLowerCase) !== -1;\n}\nfunction transformResult(response) {\n  return typeof response === \"string\" ? JSON.parse(response) : response;\n}\nfunction formatResult(suggestion, currentValue) {\n  if (!currentValue) {\n    const span = document.createElement(\"span\");\n    span.textContent = suggestion.value;\n    return span.innerHTML;\n  }\n  const pattern = \"(\" + utils.escapeRegExChars(currentValue) + \")\";\n  return suggestion.value.replace(new RegExp(pattern, \"gi\"), \"<strong>$1</strong>\").replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/&lt;(\\/?strong)&gt;/g, \"<$1>\");\n}\nfunction formatGroup(_suggestion, category) {\n  const div = document.createElement(\"div\");\n  div.className = \"autocomplete-group\";\n  div.textContent = category;\n  return div.outerHTML;\n}\n\n// src/defaults.ts\nvar noop = () => {\n};\nvar defaults = {\n  ajaxSettings: {},\n  autoSelectFirst: false,\n  appendTo: \"body\",\n  width: \"auto\",\n  minChars: 1,\n  maxHeight: 300,\n  deferRequestBy: 0,\n  params: {},\n  formatResult,\n  formatGroup,\n  zIndex: 9999,\n  type: \"GET\",\n  noCache: false,\n  onSearchStart: noop,\n  onSearchComplete: noop,\n  onSearchError: noop,\n  preserveInput: false,\n  containerClass: \"autocomplete-suggestions\",\n  tabDisabled: false,\n  dataType: \"text\",\n  triggerSelectOnValidInput: true,\n  preventBadQueries: true,\n  lookupFilter,\n  paramName: \"query\",\n  transformResult,\n  showNoSuggestionNotice: false,\n  noSuggestionNotice: \"No results\",\n  orientation: \"bottom\",\n  forceFixPosition: false\n};\n\n// src/Autocomplete.ts\nvar _Autocomplete = class _Autocomplete {\n  constructor(el, options) {\n    this.suggestions = [];\n    this.badQueries = [];\n    this.selectedIndex = -1;\n    this.cachedResponse = {};\n    this.onChangeTimeout = null;\n    this.isLocal = false;\n    this.classes = {\n      selected: \"autocomplete-selected\",\n      suggestion: \"autocomplete-suggestion\"\n    };\n    this.hint = null;\n    this.hintValue = \"\";\n    this.selection = null;\n    this.currentRequest = null;\n    this.element = el;\n    this.el = $(el);\n    this.currentValue = el.value;\n    this.options = $.extend(true, {}, _Autocomplete.defaults, options);\n    this.initialize();\n    this.setOptions(options);\n  }\n  initialize() {\n    const self = this;\n    const suggestionSelector = `.${this.classes.suggestion}`;\n    const selected = this.classes.selected;\n    const options = this.options;\n    this.element.setAttribute(\"autocomplete\", \"off\");\n    this.$noSuggestionsContainer = $('<div class=\"autocomplete-no-suggestion\"></div>').html(\n      options.noSuggestionNotice\n    );\n    this.noSuggestionsContainer = this.$noSuggestionsContainer.get(0);\n    this.suggestionsContainer = _Autocomplete.utils.createNode(options.containerClass);\n    this.$container = $(this.suggestionsContainer);\n    this.$container.appendTo(options.appendTo || \"body\");\n    if (options.width !== \"auto\") {\n      this.$container.css(\"width\", options.width);\n    }\n    const container = this.$container;\n    container.on(\"mouseover.autocomplete\", suggestionSelector, function() {\n      self.activate($(this).data(\"index\"));\n    });\n    container.on(\"click.autocomplete\", suggestionSelector, function() {\n      self.select($(this).data(\"index\"));\n    });\n    container.on(\"mouseout.autocomplete\", () => {\n      this.selectedIndex = -1;\n      container.children(`.${selected}`).removeClass(selected);\n    });\n    container.on(\"click.autocomplete\", () => {\n      if (this.blurTimeoutId !== void 0) {\n        clearTimeout(this.blurTimeoutId);\n      }\n    });\n    this.fixPositionCapture = () => {\n      if (this.visible) {\n        this.fixPosition();\n      }\n    };\n    $(window).on(\"resize.autocomplete\", this.fixPositionCapture);\n    this.el.on(\"keydown.autocomplete\", (e) => this.onKeyPress(e));\n    this.el.on(\"keyup.autocomplete\", (e) => this.onKeyUp(e));\n    this.el.on(\"blur.autocomplete\", () => this.onBlur());\n    this.el.on(\"focus.autocomplete\", () => this.onFocus());\n    this.el.on(\"change.autocomplete\", (e) => this.onKeyUp(e));\n    this.el.on(\"input.autocomplete\", (e) => this.onKeyUp(e));\n  }\n  onFocus() {\n    if (this.disabled) {\n      return;\n    }\n    this.fixPosition();\n    if (this.el.val().length >= this.options.minChars) {\n      this.onValueChange();\n    }\n  }\n  onBlur() {\n    const options = this.options;\n    const query = this.getQuery(this.el.val());\n    this.blurTimeoutId = setTimeout(() => {\n      this.hide();\n      if (this.selection && this.currentValue !== query) {\n        options.onInvalidateSelection?.call(this.element);\n      }\n    }, 200);\n  }\n  abortAjax() {\n    if (this.currentRequest) {\n      this.currentRequest.abort();\n      this.currentRequest = null;\n    }\n  }\n  setOptions(suppliedOptions) {\n    const options = { ...this.options, ...suppliedOptions };\n    this.isLocal = Array.isArray(options.lookup);\n    if (this.isLocal) {\n      options.lookup = this.verifySuggestionsFormat(options.lookup);\n    }\n    options.orientation = this.validateOrientation(options.orientation, \"bottom\");\n    this.$container.css({\n      \"max-height\": `${options.maxHeight}px`,\n      width: `${options.width}px`,\n      \"z-index\": options.zIndex\n    });\n    this.options = options;\n  }\n  clearCache() {\n    this.cachedResponse = {};\n    this.badQueries = [];\n  }\n  clear() {\n    this.clearCache();\n    this.currentValue = \"\";\n    this.suggestions = [];\n  }\n  disable() {\n    this.disabled = true;\n    if (this.onChangeTimeout) {\n      clearTimeout(this.onChangeTimeout);\n    }\n    this.abortAjax();\n  }\n  enable() {\n    this.disabled = false;\n  }\n  fixPosition() {\n    const $container = this.$container;\n    const containerParent = $container.parent().get(0);\n    if (containerParent !== document.body && !this.options.forceFixPosition) {\n      return;\n    }\n    let orientation = this.options.orientation;\n    const containerHeight = $container.outerHeight() ?? 0;\n    const height = this.el.outerHeight() ?? 0;\n    const offset = this.el.offset() ?? { top: 0, left: 0 };\n    const styles = {\n      top: offset.top,\n      left: offset.left\n    };\n    if (orientation === \"auto\") {\n      const viewPortHeight = $(window).height() ?? 0;\n      const scrollTop = $(window).scrollTop() ?? 0;\n      const topOverflow = -scrollTop + offset.top - containerHeight;\n      const bottomOverflow = scrollTop + viewPortHeight - (offset.top + height + containerHeight);\n      orientation = Math.max(topOverflow, bottomOverflow) === topOverflow ? \"top\" : \"bottom\";\n    }\n    styles.top += orientation === \"top\" ? -containerHeight : height;\n    if (containerParent !== document.body && containerParent !== void 0) {\n      const opacity = $container.css(\"opacity\");\n      if (!this.visible) {\n        $container.css(\"opacity\", 0).show();\n      }\n      const parentOffsetDiff = $container.offsetParent().offset() ?? { top: 0, left: 0 };\n      styles.top -= parentOffsetDiff.top;\n      styles.top += containerParent.scrollTop;\n      styles.left -= parentOffsetDiff.left;\n      if (!this.visible) {\n        $container.css(\"opacity\", opacity).hide();\n      }\n    }\n    if (this.options.width === \"auto\") {\n      styles.width = `${this.el.outerWidth() ?? 0}px`;\n    }\n    $container.css(styles);\n  }\n  isCursorAtEnd() {\n    const valLength = this.el.val().length;\n    const { selectionStart } = this.element;\n    return typeof selectionStart === \"number\" ? selectionStart === valLength : true;\n  }\n  onKeyPress(e) {\n    if (!this.disabled && !this.visible && e.which === keys.DOWN && this.currentValue) {\n      this.suggest();\n      return;\n    }\n    if (this.disabled || !this.visible) {\n      return;\n    }\n    switch (e.which) {\n      case keys.ESC:\n        this.el.val(this.currentValue);\n        this.hide();\n        break;\n      case keys.RIGHT:\n        if (this.hint && this.options.onHint && this.isCursorAtEnd()) {\n          this.selectHint();\n          break;\n        }\n        return;\n      case keys.TAB:\n        if (this.hint && this.options.onHint) {\n          this.selectHint();\n          return;\n        }\n        if (this.selectedIndex === -1) {\n          this.hide();\n          return;\n        }\n        this.select(this.selectedIndex);\n        if (this.options.tabDisabled === false) {\n          return;\n        }\n        break;\n      case keys.RETURN:\n        if (this.selectedIndex === -1) {\n          this.hide();\n          return;\n        }\n        this.select(this.selectedIndex);\n        break;\n      case keys.UP:\n        this.moveUp();\n        break;\n      case keys.DOWN:\n        this.moveDown();\n        break;\n      default:\n        return;\n    }\n    e.stopImmediatePropagation();\n    e.preventDefault();\n  }\n  onKeyUp(e) {\n    if (this.disabled) {\n      return;\n    }\n    if (e.which === keys.UP || e.which === keys.DOWN) {\n      return;\n    }\n    if (this.onChangeTimeout) {\n      clearTimeout(this.onChangeTimeout);\n    }\n    if (this.currentValue !== this.el.val()) {\n      this.findBestHint();\n      if (this.options.deferRequestBy > 0) {\n        this.onChangeTimeout = setTimeout(\n          () => this.onValueChange(),\n          this.options.deferRequestBy\n        );\n      } else {\n        this.onValueChange();\n      }\n    }\n  }\n  onValueChange() {\n    if (this.ignoreValueChange) {\n      this.ignoreValueChange = false;\n      return;\n    }\n    const options = this.options;\n    const value = this.el.val();\n    const query = this.getQuery(value);\n    if (this.selection && this.currentValue !== query) {\n      this.selection = null;\n      options.onInvalidateSelection?.call(this.element);\n    }\n    if (this.onChangeTimeout) {\n      clearTimeout(this.onChangeTimeout);\n    }\n    this.currentValue = value;\n    this.selectedIndex = -1;\n    if (options.triggerSelectOnValidInput && this.isExactMatch(query)) {\n      this.select(0);\n      return;\n    }\n    if (query.length < options.minChars) {\n      this.hide();\n    } else {\n      this.getSuggestions(query);\n    }\n  }\n  isExactMatch(query) {\n    const { suggestions } = this;\n    return suggestions.length === 1 && suggestions[0].value.toLowerCase() === query.toLowerCase();\n  }\n  getQuery(value) {\n    const { delimiter } = this.options;\n    if (!delimiter) {\n      return value;\n    }\n    const parts = value.split(delimiter);\n    return parts[parts.length - 1].trim();\n  }\n  getSuggestionsLocal(query) {\n    const options = this.options;\n    const queryLowerCase = query.toLowerCase();\n    const filter = options.lookupFilter;\n    const limit = parseInt(options.lookupLimit, 10);\n    const lookup = options.lookup;\n    const matched = lookup.filter((suggestion) => filter(suggestion, query, queryLowerCase));\n    return {\n      suggestions: limit && matched.length > limit ? matched.slice(0, limit) : matched\n    };\n  }\n  getSuggestions(q) {\n    const options = this.options;\n    let serviceUrl = options.serviceUrl;\n    let response;\n    let cacheKey;\n    options.params[options.paramName] = q;\n    if (options.onSearchStart.call(this.element, options.params) === false) {\n      return;\n    }\n    const params = options.ignoreParams ? null : options.params;\n    if (typeof options.lookup === \"function\") {\n      options.lookup(q, (data) => {\n        const suggestions = this.verifySuggestionsFormat(data.suggestions);\n        this.suggestions = suggestions;\n        options.onSearchComplete.call(this.element, q, suggestions);\n        this.suggest();\n      });\n      return;\n    }\n    if (this.isLocal) {\n      response = this.getSuggestionsLocal(q);\n    } else {\n      if (typeof serviceUrl === \"function\") {\n        serviceUrl = serviceUrl.call(this.element, q);\n      }\n      cacheKey = `${serviceUrl}?${$.param(params ?? {})}`;\n      response = this.cachedResponse[cacheKey];\n    }\n    if (response && Array.isArray(response.suggestions)) {\n      this.suggestions = response.suggestions;\n      options.onSearchComplete.call(this.element, q, response.suggestions);\n      this.suggest();\n    } else if (!this.isBadQuery(q)) {\n      this.abortAjax();\n      const ajaxSettings = {\n        url: serviceUrl,\n        data: params ?? void 0,\n        type: options.type,\n        dataType: options.dataType,\n        ...options.ajaxSettings\n      };\n      this.currentRequest = $.ajax(ajaxSettings).done((data) => {\n        this.currentRequest = null;\n        const result = options.transformResult(data, q);\n        result.suggestions = this.verifySuggestionsFormat(result.suggestions);\n        options.onSearchComplete.call(this.element, q, result.suggestions);\n        this.processResponse(result, q, cacheKey);\n      }).fail((jqXHR, textStatus, errorThrown) => {\n        options.onSearchError.call(this.element, q, jqXHR, textStatus, errorThrown);\n      });\n    } else {\n      options.onSearchComplete.call(this.element, q, []);\n    }\n  }\n  isBadQuery(q) {\n    if (!this.options.preventBadQueries) {\n      return false;\n    }\n    return this.badQueries.some((bad) => q.indexOf(bad) === 0);\n  }\n  hide() {\n    if (this.options.onHide && this.visible) {\n      this.options.onHide.call(this.element, this.$container);\n    }\n    this.visible = false;\n    this.selectedIndex = -1;\n    if (this.onChangeTimeout) {\n      clearTimeout(this.onChangeTimeout);\n    }\n    this.$container.hide();\n    this.onHint(null);\n  }\n  groupSuggestionsByCategory(suggestions, key) {\n    const groups = /* @__PURE__ */ new Map();\n    for (const s of suggestions) {\n      const cat = s.data[key];\n      const arr = groups.get(cat);\n      if (arr) {\n        arr.push(s);\n      } else {\n        groups.set(cat, [s]);\n      }\n    }\n    return Array.from(groups.values()).flat();\n  }\n  suggest() {\n    if (!this.suggestions.length) {\n      if (this.options.showNoSuggestionNotice) {\n        this.noSuggestions();\n      } else {\n        this.hide();\n      }\n      return;\n    }\n    const options = this.options;\n    const { groupBy, formatResult: formatResultFn, beforeRender } = options;\n    const value = this.getQuery(this.currentValue);\n    const className = this.classes.suggestion;\n    const classSelected = this.classes.selected;\n    const container = this.$container;\n    if (options.triggerSelectOnValidInput && this.isExactMatch(value)) {\n      this.select(0);\n      return;\n    }\n    if (groupBy) {\n      this.suggestions = this.groupSuggestionsByCategory(this.suggestions, groupBy);\n    }\n    let category;\n    const formatGroupFn = (suggestion) => {\n      const currentCategory = suggestion.data[groupBy];\n      if (category === currentCategory) {\n        return \"\";\n      }\n      category = currentCategory;\n      return options.formatGroup(suggestion, category);\n    };\n    const html = this.suggestions.map((suggestion, i) => {\n      const group = groupBy ? formatGroupFn(suggestion) : \"\";\n      return `${group}<div class=\"${className}\" data-index=\"${i}\">${formatResultFn(suggestion, value, i)}</div>`;\n    }).join(\"\");\n    this.adjustContainerWidth();\n    this.$noSuggestionsContainer.detach();\n    container.html(html);\n    beforeRender?.call(this.element, container, this.suggestions);\n    this.fixPosition();\n    container.show();\n    if (options.autoSelectFirst) {\n      this.selectedIndex = 0;\n      container.scrollTop(0);\n      container.children(`.${className}`).first().addClass(classSelected);\n    }\n    this.visible = true;\n    this.findBestHint();\n  }\n  noSuggestions() {\n    const { beforeRender } = this.options;\n    const container = this.$container;\n    this.adjustContainerWidth();\n    this.$noSuggestionsContainer.detach();\n    container.empty().append(this.$noSuggestionsContainer);\n    beforeRender?.call(this.element, container, this.suggestions);\n    this.fixPosition();\n    container.show();\n    this.visible = true;\n  }\n  adjustContainerWidth() {\n    const { width } = this.options;\n    if (width === \"auto\") {\n      const w = this.el.outerWidth() ?? 0;\n      this.$container.css(\"width\", w > 0 ? w : 300);\n    } else if (width === \"flex\") {\n      this.$container.css(\"width\", \"\");\n    }\n  }\n  findBestHint() {\n    const value = this.el.val().toLowerCase();\n    if (!value) {\n      return;\n    }\n    const bestMatch = this.suggestions.find((s) => s.value.toLowerCase().indexOf(value) === 0) ?? null;\n    this.onHint(bestMatch);\n  }\n  onHint(suggestion) {\n    const { onHint: onHintCallback } = this.options;\n    const hintValue = suggestion ? this.currentValue + suggestion.value.substr(this.currentValue.length) : \"\";\n    if (this.hintValue !== hintValue) {\n      this.hintValue = hintValue;\n      this.hint = suggestion;\n      onHintCallback?.call(this.element, hintValue);\n    }\n  }\n  verifySuggestionsFormat(suggestions) {\n    if (suggestions.length && typeof suggestions[0] === \"string\") {\n      return suggestions.map((value) => ({ value, data: null }));\n    }\n    return suggestions.map(\n      (s) => typeof s.value === \"string\" ? s : { ...s, value: String(s.value) }\n    );\n  }\n  validateOrientation(orientation, fallback) {\n    const normalized = (orientation || \"\").trim().toLowerCase();\n    if (normalized === \"auto\" || normalized === \"top\" || normalized === \"bottom\") {\n      return normalized;\n    }\n    return fallback;\n  }\n  processResponse(result, originalQuery, cacheKey) {\n    const options = this.options;\n    result.suggestions = this.verifySuggestionsFormat(result.suggestions);\n    if (!options.noCache) {\n      this.cachedResponse[cacheKey] = result;\n      if (options.preventBadQueries && !result.suggestions.length) {\n        this.badQueries.push(originalQuery);\n      }\n    }\n    if (originalQuery !== this.getQuery(this.currentValue)) {\n      return;\n    }\n    this.suggestions = result.suggestions;\n    this.suggest();\n  }\n  activate(index) {\n    const selected = this.classes.selected;\n    const container = this.$container;\n    const children = container.find(`.${this.classes.suggestion}`);\n    container.find(`.${selected}`).removeClass(selected);\n    this.selectedIndex = index;\n    if (this.selectedIndex !== -1 && children.length > this.selectedIndex) {\n      const activeItem = children.get(this.selectedIndex);\n      $(activeItem).addClass(selected);\n      return activeItem;\n    }\n    return null;\n  }\n  selectHint() {\n    this.select(this.suggestions.indexOf(this.hint));\n  }\n  select(i) {\n    this.hide();\n    this.onSelect(i);\n  }\n  moveUp() {\n    if (this.selectedIndex === -1) {\n      return;\n    }\n    if (this.selectedIndex === 0) {\n      this.$container.children(`.${this.classes.suggestion}`).first().removeClass(this.classes.selected);\n      this.selectedIndex = -1;\n      this.ignoreValueChange = false;\n      this.el.val(this.currentValue);\n      this.findBestHint();\n      return;\n    }\n    this.adjustScroll(this.selectedIndex - 1);\n  }\n  moveDown() {\n    if (this.selectedIndex === this.suggestions.length - 1) {\n      return;\n    }\n    this.adjustScroll(this.selectedIndex + 1);\n  }\n  adjustScroll(index) {\n    const activeItem = this.activate(index);\n    if (!activeItem) {\n      return;\n    }\n    const heightDelta = $(activeItem).outerHeight() ?? 0;\n    const offsetTop = activeItem.offsetTop;\n    const container = this.$container;\n    const upperBound = container.scrollTop() ?? 0;\n    const lowerBound = upperBound + this.options.maxHeight - heightDelta;\n    if (offsetTop < upperBound) {\n      container.scrollTop(offsetTop);\n    } else if (offsetTop > lowerBound) {\n      container.scrollTop(offsetTop - this.options.maxHeight + heightDelta);\n    }\n    if (!this.options.preserveInput) {\n      this.ignoreValueChange = true;\n      this.el.val(this.getValue(this.suggestions[index].value));\n    }\n    this.onHint(null);\n  }\n  onSelect(index) {\n    const onSelectCallback = this.options.onSelect;\n    const suggestion = this.suggestions[index];\n    this.currentValue = this.getValue(suggestion.value);\n    if (this.currentValue !== this.el.val() && !this.options.preserveInput) {\n      this.el.val(this.currentValue);\n    }\n    this.onHint(null);\n    this.suggestions = [];\n    this.selection = suggestion;\n    onSelectCallback?.call(this.element, suggestion);\n  }\n  getValue(value) {\n    const { delimiter } = this.options;\n    if (!delimiter) {\n      return value;\n    }\n    const currentValue = this.currentValue;\n    const parts = currentValue.split(delimiter);\n    if (parts.length === 1) {\n      return value;\n    }\n    return currentValue.substr(0, currentValue.length - parts[parts.length - 1].length) + value;\n  }\n  dispose() {\n    this.el.off(\".autocomplete\").removeData(\"autocomplete\");\n    if (this.fixPositionCapture) {\n      $(window).off(\"resize.autocomplete\", this.fixPositionCapture);\n    }\n    this.$container.remove();\n  }\n};\n_Autocomplete.defaults = defaults;\n_Autocomplete.utils = utils;\nvar Autocomplete = _Autocomplete;\n\n// src/jquery-plugin.ts\nvar dataKey = \"autocomplete\";\nfunction installAutocomplete($2) {\n  setJQuery($2);\n  $2.Autocomplete = Autocomplete;\n  $2.fn.devbridgeAutocomplete = function(options, args) {\n    if (!arguments.length) {\n      return this.first().data(dataKey);\n    }\n    return this.each(function() {\n      const inputElement = $2(this);\n      let instance = inputElement.data(dataKey);\n      if (typeof options === \"string\") {\n        if (instance && typeof instance[options] === \"function\") {\n          instance[options](\n            args\n          );\n        }\n      } else {\n        if (instance && instance.dispose) {\n          instance.dispose();\n        }\n        instance = new Autocomplete(this, options);\n        inputElement.data(dataKey, instance);\n      }\n    });\n  };\n  if (!$2.fn.autocomplete) {\n    $2.fn.autocomplete = $2.fn.devbridgeAutocomplete;\n  }\n}\n\n// src/index.ts\ninstallAutocomplete(jQuery);\nexport {\n  Autocomplete\n};\n", "// legacy\nimport { AUTOCOMPLETE_DEFAULTS } from './modules/autocomplete_settings.js';\nimport { URLParams } from './modules/URLParams.js';\nimport d3locale from './modules/d3-locale.js';\nimport { createScaleColors } from './modules/createScaleColors.js';\nimport { slugString } from './modules/slugString.js';\nimport accounting from 'accounting';\nimport { SETTINGS } from './modules/accounting_settings.js';\naccounting.settings = SETTINGS;\n\n// new modules\nimport { Datepicker } from './modules/air-datepicker.js';\nimport { readMore } from './modules/read-more.js';\nimport { HorizontalCarousel } from './modules/horizontal-carousel.js';\nimport { ImageLightbox } from './modules/image-lightbox.js';\nimport { RangeSlider } from './modules/range-slider.js';\nimport { Middleware } from './modules/middleware.js';\nimport { debounce } from './modules/debounce.js';\nimport { checkAndReportAccessibility } from './modules/accessibility.js';\nimport { groupBy } from './modules/groupBy.js';\nimport { formatNumbers } from './modules/d3-format-numbers.js';\nimport appsignal from './modules/appsignal.js';\nimport wordwrap from './modules/wordwrap.js';\nimport tspans from './modules/tspans.js';\nimport divide from './modules/safe-division.js';\n\nexport {\n  AUTOCOMPLETE_DEFAULTS,\n  accounting,\n  createScaleColors,\n  d3locale,\n  URLParams,\n  RangeSlider,\n  Datepicker,\n  readMore,\n  HorizontalCarousel,\n  ImageLightbox,\n  Middleware,\n  slugString,\n  debounce,\n  checkAndReportAccessibility,\n  groupBy,\n  formatNumbers,\n  appsignal,\n  wordwrap,\n  tspans,\n  divide\n};\n", "export const AUTOCOMPLETE_DEFAULTS = {\n  dataType: 'json',\n  minChars: 3,\n  showNoSuggestionNotice: true,\n  noSuggestionNotice: 'Lo sentimos, pero no hay resultados.',\n  preserveInput: true,\n  autoSelectFirst: true,\n  triggerSelectOnValidInput: false,\n  preventBadQueries: false,\n  tabDisabled: true\n};", "// Fallback IE\nconst updateQueryStringParam = (key, value, url) => {\n  let urlQueryString = url || \"\"\n  // let urlQueryString = document.location.search\n  let newParam = key + '=' + value\n  let params = newParam\n\n  // If the \"search\" string exists, then build params from it\n  if (urlQueryString) {\n    var updateRegex = new RegExp('([?&])' + key + '[^&]*');\n    var removeRegex = new RegExp('([?&])' + key + '=[^&;]+[&;]?');\n\n    if (typeof value == 'undefined' || value == null || value == '') { // Remove param if value is empty\n      params = urlQueryString.replace(removeRegex, \"$1\");\n      params = params.replace(/[&;]$/, \"\");\n\n    } else if (urlQueryString.match(updateRegex) !== null) { // If param exists already, update it\n      params = urlQueryString.replace(updateRegex, \"$1\" + newParam);\n\n    } else { // Otherwise, add it to end of query string\n      params = urlQueryString + '&' + newParam;\n    }\n  }\n\n  return params\n};\n\nexport const URLParams = function(args) {\n\n  let params = \"\"\n\n  // Break if no endpoint\n  if (!args.endpoint) throw \"No endpoint provided\"\n\n  // Force param object to be present\n  if (!args.hasOwnProperty(\"params\")) {\n    args.params = {}\n  }\n\n  if (window.URLSearchParams) {\n    params = new URLSearchParams()\n\n    for (var param in args.params) {\n      if (args.params.hasOwnProperty(param)) {\n        params.set(param, args.params[param])\n      }\n    }\n  } else {\n    params = \"\"\n    // IE 10+\n    for (var ieParam in args.params) {\n      if (args.params.hasOwnProperty(ieParam)) {\n        params = updateQueryStringParam(ieParam, args.params[ieParam], params)\n      }\n    }\n  }\n\n  return `${args.endpoint}?${params.toString()}`\n}\n", "var es = {\n  \"decimal\": \",\",\n  \"thousands\": \".\",\n  \"grouping\": [3],\n  \"currency\": [\"\u20AC\", \"\"],\n  \"dateTime\": \"%a %b %e %X %Y\",\n  \"date\": \"%d/%m/%Y\",\n  \"time\": \"%H:%M:%S\",\n  \"periods\": [\"AM\", \"PM\"],\n  \"days\": [\"Domingo\", \"Lunes\", \"Martes\", \"Mi\u00E9rcoles\", \"Jueves\", \"Viernes\", \"S\u00E1bado\"],\n  \"shortDays\": [\"Dom\", \"Lun\", \"Mar\", \"Mi\", \"Jue\", \"Vie\", \"Sab\"],\n  \"months\": [\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"],\n  \"shortMonths\": [\"Ene\", \"Feb\", \"Mar\", \"Abr\", \"May\", \"Jun\", \"Jul\", \"Ago\", \"Sep\", \"Oct\", \"Nov\", \"Dic\"]\n};\n\nvar ca = {\n  \"decimal\": \",\",\n  \"thousands\": \".\",\n  \"grouping\": [3],\n  \"currency\": [\"\u20AC\", \"\"],\n  \"dateTime\": \"%a %b %e %X %Y\",\n  \"date\": \"%d/%m/%Y\",\n  \"time\": \"%H:%M:%S\",\n  \"periods\": [\"AM\", \"PM\"],\n  \"days\": [\"Diumenge\", \"Dilluns\", \"Dimarts\", \"Dimecres\", \"Dijous\", \"Divendres\", \"Dissabte\"],\n  \"shortDays\": [\"Diu\", \"Dill\", \"Dim\", \"Dime\", \"Dij\", \"Div\", \"Div\"],\n  \"months\": [\"Gener\", \"Febrer\", \"Mar\u00E7\", \"Abril\", \"Maig\", \"Juny\", \"Juliol\", \"Agost\", \"Setembre\", \"Octubre\", \"Novembre\", \"Desembre\"],\n  \"shortMonths\": [\"Gen\", \"Feb\", \"Mar\u00E7\", \"Abr\", \"Maig\", \"Juny\", \"Jul\", \"Ago\", \"Sep\", \"Oct\", \"Nov\", \"Des\"]\n}\n\nvar en = {\n  \"decimal\": \",\",\n  \"thousands\": \".\",\n  \"grouping\": [3],\n  \"currency\": [\"\u20AC\", \"\"],\n  \"dateTime\": \"%a %b %e %X %Y\",\n  \"date\": \"%d/%m/%Y\",\n  \"time\": \"%H:%M:%S\",\n  \"periods\": [\"AM\", \"PM\"],\n  \"days\": [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n  \"shortDays\": [\"Sun\", \"Mon\", \"Tues\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n  \"months\": [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n  \"shortMonths\": [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n}\n\nexport default { es, en, ca }", "import * as d3 from 'd3';\n\nexport function createScaleColors(values, arrayDomain) {\n  let colorsGobiertoExtend = [\"var(--color-gobierto-turquoise)\", \"var(--color-gobierto-blue)\", \"var(--color-gobierto-red)\", \"var(--color-gobierto-yellow)\", \"var(--color-gobierto-extra-5)\", \"var(--color-gobierto-extra-6)\", \"var(--color-gobierto-extra-7)\", \"var(--color-gobierto-extra-8)\", \"var(--color-gobierto-extra-9)\", \"var(--color-gobierto-extra-10)\" ]\n  colorsGobiertoExtend = colorsGobiertoExtend.slice(0, values)\n\n  const colors = d3.scaleOrdinal()\n    .domain(arrayDomain)\n    .range(colorsGobiertoExtend);\n  return colors;\n}\n", "export * from \"d3-array\";\nexport * from \"d3-axis\";\nexport * from \"d3-brush\";\nexport * from \"d3-chord\";\nexport * from \"d3-color\";\nexport * from \"d3-contour\";\nexport * from \"d3-delaunay\";\nexport * from \"d3-dispatch\";\nexport * from \"d3-drag\";\nexport * from \"d3-dsv\";\nexport * from \"d3-ease\";\nexport * from \"d3-fetch\";\nexport * from \"d3-force\";\nexport * from \"d3-format\";\nexport * from \"d3-geo\";\nexport * from \"d3-hierarchy\";\nexport * from \"d3-interpolate\";\nexport * from \"d3-path\";\nexport * from \"d3-polygon\";\nexport * from \"d3-quadtree\";\nexport * from \"d3-random\";\nexport * from \"d3-scale\";\nexport * from \"d3-scale-chromatic\";\nexport * from \"d3-selection\";\nexport * from \"d3-shape\";\nexport * from \"d3-time\";\nexport * from \"d3-time-format\";\nexport * from \"d3-timer\";\nexport * from \"d3-transition\";\nexport * from \"d3-zoom\";\n", "export {\n  default as brush,\n  brushX,\n  brushY,\n  brushSelection\n} from \"./brush.js\";\n", "import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n    MODE_SPACE = {name: \"space\"},\n    MODE_HANDLE = {name: \"handle\"},\n    MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n  return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n  return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n  name: \"x\",\n  handles: [\"w\", \"e\"].map(type),\n  input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n  output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n  name: \"y\",\n  handles: [\"n\", \"s\"].map(type),\n  input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n  output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n  name: \"xy\",\n  handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n  input: function(xy) { return xy == null ? null : number2(xy); },\n  output: function(xy) { return xy; }\n};\n\nvar cursors = {\n  overlay: \"crosshair\",\n  selection: \"move\",\n  n: \"ns-resize\",\n  e: \"ew-resize\",\n  s: \"ns-resize\",\n  w: \"ew-resize\",\n  nw: \"nwse-resize\",\n  ne: \"nesw-resize\",\n  se: \"nwse-resize\",\n  sw: \"nesw-resize\"\n};\n\nvar flipX = {\n  e: \"w\",\n  w: \"e\",\n  nw: \"ne\",\n  ne: \"nw\",\n  se: \"sw\",\n  sw: \"se\"\n};\n\nvar flipY = {\n  n: \"s\",\n  s: \"n\",\n  nw: \"sw\",\n  ne: \"se\",\n  se: \"ne\",\n  sw: \"nw\"\n};\n\nvar signsX = {\n  overlay: +1,\n  selection: +1,\n  n: null,\n  e: +1,\n  s: null,\n  w: -1,\n  nw: -1,\n  ne: +1,\n  se: +1,\n  sw: -1\n};\n\nvar signsY = {\n  overlay: +1,\n  selection: +1,\n  n: -1,\n  e: null,\n  s: +1,\n  w: null,\n  nw: -1,\n  ne: -1,\n  se: +1,\n  sw: +1\n};\n\nfunction type(t) {\n  return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n  return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n  var svg = this.ownerSVGElement || this;\n  if (svg.hasAttribute(\"viewBox\")) {\n    svg = svg.viewBox.baseVal;\n    return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n  }\n  return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n  return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name \u201C__brush\u201D rather than auto-generated.\nfunction local(node) {\n  while (!node.__brush) if (!(node = node.parentNode)) return;\n  return node.__brush;\n}\n\nfunction empty(extent) {\n  return extent[0][0] === extent[1][0]\n      || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n  var state = node.__brush;\n  return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n  return brush(X);\n}\n\nexport function brushY() {\n  return brush(Y);\n}\n\nexport default function() {\n  return brush(XY);\n}\n\nfunction brush(dim) {\n  var extent = defaultExtent,\n      filter = defaultFilter,\n      touchable = defaultTouchable,\n      keys = true,\n      listeners = dispatch(\"start\", \"brush\", \"end\"),\n      handleSize = 6,\n      touchending;\n\n  function brush(group) {\n    var overlay = group\n        .property(\"__brush\", initialize)\n      .selectAll(\".overlay\")\n      .data([type(\"overlay\")]);\n\n    overlay.enter().append(\"rect\")\n        .attr(\"class\", \"overlay\")\n        .attr(\"pointer-events\", \"all\")\n        .attr(\"cursor\", cursors.overlay)\n      .merge(overlay)\n        .each(function() {\n          var extent = local(this).extent;\n          select(this)\n              .attr(\"x\", extent[0][0])\n              .attr(\"y\", extent[0][1])\n              .attr(\"width\", extent[1][0] - extent[0][0])\n              .attr(\"height\", extent[1][1] - extent[0][1]);\n        });\n\n    group.selectAll(\".selection\")\n      .data([type(\"selection\")])\n      .enter().append(\"rect\")\n        .attr(\"class\", \"selection\")\n        .attr(\"cursor\", cursors.selection)\n        .attr(\"fill\", \"#777\")\n        .attr(\"fill-opacity\", 0.3)\n        .attr(\"stroke\", \"#fff\")\n        .attr(\"shape-rendering\", \"crispEdges\");\n\n    var handle = group.selectAll(\".handle\")\n      .data(dim.handles, function(d) { return d.type; });\n\n    handle.exit().remove();\n\n    handle.enter().append(\"rect\")\n        .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n        .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n    group\n        .each(redraw)\n        .attr(\"fill\", \"none\")\n        .attr(\"pointer-events\", \"all\")\n        .on(\"mousedown.brush\", started)\n      .filter(touchable)\n        .on(\"touchstart.brush\", started)\n        .on(\"touchmove.brush\", touchmoved)\n        .on(\"touchend.brush touchcancel.brush\", touchended)\n        .style(\"touch-action\", \"none\")\n        .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n  }\n\n  brush.move = function(group, selection, event) {\n    if (group.tween) {\n      group\n          .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n          .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n          .tween(\"brush\", function() {\n            var that = this,\n                state = that.__brush,\n                emit = emitter(that, arguments),\n                selection0 = state.selection,\n                selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n                i = interpolate(selection0, selection1);\n\n            function tween(t) {\n              state.selection = t === 1 && selection1 === null ? null : i(t);\n              redraw.call(that);\n              emit.brush();\n            }\n\n            return selection0 !== null && selection1 !== null ? tween : tween(1);\n          });\n    } else {\n      group\n          .each(function() {\n            var that = this,\n                args = arguments,\n                state = that.__brush,\n                selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n                emit = emitter(that, args).beforestart();\n\n            interrupt(that);\n            state.selection = selection1 === null ? null : selection1;\n            redraw.call(that);\n            emit.start(event).brush(event).end(event);\n          });\n    }\n  };\n\n  brush.clear = function(group, event) {\n    brush.move(group, null, event);\n  };\n\n  function redraw() {\n    var group = select(this),\n        selection = local(this).selection;\n\n    if (selection) {\n      group.selectAll(\".selection\")\n          .style(\"display\", null)\n          .attr(\"x\", selection[0][0])\n          .attr(\"y\", selection[0][1])\n          .attr(\"width\", selection[1][0] - selection[0][0])\n          .attr(\"height\", selection[1][1] - selection[0][1]);\n\n      group.selectAll(\".handle\")\n          .style(\"display\", null)\n          .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n          .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n          .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n          .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n    }\n\n    else {\n      group.selectAll(\".selection,.handle\")\n          .style(\"display\", \"none\")\n          .attr(\"x\", null)\n          .attr(\"y\", null)\n          .attr(\"width\", null)\n          .attr(\"height\", null);\n    }\n  }\n\n  function emitter(that, args, clean) {\n    var emit = that.__brush.emitter;\n    return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n  }\n\n  function Emitter(that, args, clean) {\n    this.that = that;\n    this.args = args;\n    this.state = that.__brush;\n    this.active = 0;\n    this.clean = clean;\n  }\n\n  Emitter.prototype = {\n    beforestart: function() {\n      if (++this.active === 1) this.state.emitter = this, this.starting = true;\n      return this;\n    },\n    start: function(event, mode) {\n      if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n      else this.emit(\"brush\", event);\n      return this;\n    },\n    brush: function(event, mode) {\n      this.emit(\"brush\", event, mode);\n      return this;\n    },\n    end: function(event, mode) {\n      if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n      return this;\n    },\n    emit: function(type, event, mode) {\n      var d = select(this.that).datum();\n      listeners.call(\n        type,\n        this.that,\n        new BrushEvent(type, {\n          sourceEvent: event,\n          target: brush,\n          selection: dim.output(this.state.selection),\n          mode,\n          dispatch: listeners\n        }),\n        d\n      );\n    }\n  };\n\n  function started(event) {\n    if (touchending && !event.touches) return;\n    if (!filter.apply(this, arguments)) return;\n\n    var that = this,\n        type = event.target.__data__.type,\n        mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n        signX = dim === Y ? null : signsX[type],\n        signY = dim === X ? null : signsY[type],\n        state = local(that),\n        extent = state.extent,\n        selection = state.selection,\n        W = extent[0][0], w0, w1,\n        N = extent[0][1], n0, n1,\n        E = extent[1][0], e0, e1,\n        S = extent[1][1], s0, s1,\n        dx = 0,\n        dy = 0,\n        moving,\n        shifting = signX && signY && keys && event.shiftKey,\n        lockX,\n        lockY,\n        points = Array.from(event.touches || [event], t => {\n          const i = t.identifier;\n          t = pointer(t, that);\n          t.point0 = t.slice();\n          t.identifier = i;\n          return t;\n        });\n\n    interrupt(that);\n    var emit = emitter(that, arguments, true).beforestart();\n\n    if (type === \"overlay\") {\n      if (selection) moving = true;\n      const pts = [points[0], points[1] || points[0]];\n      state.selection = selection = [[\n          w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n          n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n        ], [\n          e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n          s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n        ]];\n      if (points.length > 1) move(event);\n    } else {\n      w0 = selection[0][0];\n      n0 = selection[0][1];\n      e0 = selection[1][0];\n      s0 = selection[1][1];\n    }\n\n    w1 = w0;\n    n1 = n0;\n    e1 = e0;\n    s1 = s0;\n\n    var group = select(that)\n        .attr(\"pointer-events\", \"none\");\n\n    var overlay = group.selectAll(\".overlay\")\n        .attr(\"cursor\", cursors[type]);\n\n    if (event.touches) {\n      emit.moved = moved;\n      emit.ended = ended;\n    } else {\n      var view = select(event.view)\n          .on(\"mousemove.brush\", moved, true)\n          .on(\"mouseup.brush\", ended, true);\n      if (keys) view\n          .on(\"keydown.brush\", keydowned, true)\n          .on(\"keyup.brush\", keyupped, true)\n\n      dragDisable(event.view);\n    }\n\n    redraw.call(that);\n    emit.start(event, mode.name);\n\n    function moved(event) {\n      for (const p of event.changedTouches || [event]) {\n        for (const d of points)\n          if (d.identifier === p.identifier) d.cur = pointer(p, that);\n      }\n      if (shifting && !lockX && !lockY && points.length === 1) {\n        const point = points[0];\n        if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n          lockY = true;\n        else\n          lockX = true;\n      }\n      for (const point of points)\n        if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n      moving = true;\n      noevent(event);\n      move(event);\n    }\n\n    function move(event) {\n      const point = points[0], point0 = point.point0;\n      var t;\n\n      dx = point[0] - point0[0];\n      dy = point[1] - point0[1];\n\n      switch (mode) {\n        case MODE_SPACE:\n        case MODE_DRAG: {\n          if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n          if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n          break;\n        }\n        case MODE_HANDLE: {\n          if (points[1]) {\n            if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n            if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n          } else {\n            if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n            else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n            if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n            else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n          }\n          break;\n        }\n        case MODE_CENTER: {\n          if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n          if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n          break;\n        }\n      }\n\n      if (e1 < w1) {\n        signX *= -1;\n        t = w0, w0 = e0, e0 = t;\n        t = w1, w1 = e1, e1 = t;\n        if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n      }\n\n      if (s1 < n1) {\n        signY *= -1;\n        t = n0, n0 = s0, s0 = t;\n        t = n1, n1 = s1, s1 = t;\n        if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n      }\n\n      if (state.selection) selection = state.selection; // May be set by brush.move!\n      if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n      if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n      if (selection[0][0] !== w1\n          || selection[0][1] !== n1\n          || selection[1][0] !== e1\n          || selection[1][1] !== s1) {\n        state.selection = [[w1, n1], [e1, s1]];\n        redraw.call(that);\n        emit.brush(event, mode.name);\n      }\n    }\n\n    function ended(event) {\n      nopropagation(event);\n      if (event.touches) {\n        if (event.touches.length) return;\n        if (touchending) clearTimeout(touchending);\n        touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n      } else {\n        dragEnable(event.view, moving);\n        view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n      }\n      group.attr(\"pointer-events\", \"all\");\n      overlay.attr(\"cursor\", cursors.overlay);\n      if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n      if (empty(selection)) state.selection = null, redraw.call(that);\n      emit.end(event, mode.name);\n    }\n\n    function keydowned(event) {\n      switch (event.keyCode) {\n        case 16: { // SHIFT\n          shifting = signX && signY;\n          break;\n        }\n        case 18: { // ALT\n          if (mode === MODE_HANDLE) {\n            if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n            if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n            mode = MODE_CENTER;\n            move(event);\n          }\n          break;\n        }\n        case 32: { // SPACE; takes priority over ALT\n          if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n            if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n            if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n            mode = MODE_SPACE;\n            overlay.attr(\"cursor\", cursors.selection);\n            move(event);\n          }\n          break;\n        }\n        default: return;\n      }\n      noevent(event);\n    }\n\n    function keyupped(event) {\n      switch (event.keyCode) {\n        case 16: { // SHIFT\n          if (shifting) {\n            lockX = lockY = shifting = false;\n            move(event);\n          }\n          break;\n        }\n        case 18: { // ALT\n          if (mode === MODE_CENTER) {\n            if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n            if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n            mode = MODE_HANDLE;\n            move(event);\n          }\n          break;\n        }\n        case 32: { // SPACE\n          if (mode === MODE_SPACE) {\n            if (event.altKey) {\n              if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n              if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n              mode = MODE_CENTER;\n            } else {\n              if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n              if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n              mode = MODE_HANDLE;\n            }\n            overlay.attr(\"cursor\", cursors[type]);\n            move(event);\n          }\n          break;\n        }\n        default: return;\n      }\n      noevent(event);\n    }\n  }\n\n  function touchmoved(event) {\n    emitter(this, arguments).moved(event);\n  }\n\n  function touchended(event) {\n    emitter(this, arguments).ended(event);\n  }\n\n  function initialize() {\n    var state = this.__brush || {selection: null};\n    state.extent = number2(extent.apply(this, arguments));\n    state.dim = dim;\n    return state;\n  }\n\n  brush.extent = function(_) {\n    return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n  };\n\n  brush.filter = function(_) {\n    return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n  };\n\n  brush.touchable = function(_) {\n    return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n  };\n\n  brush.handleSize = function(_) {\n    return arguments.length ? (handleSize = +_, brush) : handleSize;\n  };\n\n  brush.keyModifiers = function(_) {\n    return arguments.length ? (keys = !!_, brush) : keys;\n  };\n\n  brush.on = function() {\n    var value = listeners.on.apply(listeners, arguments);\n    return value === listeners ? brush : value;\n  };\n\n  return brush;\n}\n", "export {default as dispatch} from \"./dispatch.js\";\n", "var noop = {value: () => {}};\n\nfunction dispatch() {\n  for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n    if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n    _[t] = [];\n  }\n  return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n  this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n  return typenames.trim().split(/^|\\s+/).map(function(t) {\n    var name = \"\", i = t.indexOf(\".\");\n    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n    if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n    return {type: t, name: name};\n  });\n}\n\nDispatch.prototype = dispatch.prototype = {\n  constructor: Dispatch,\n  on: function(typename, callback) {\n    var _ = this._,\n        T = parseTypenames(typename + \"\", _),\n        t,\n        i = -1,\n        n = T.length;\n\n    // If no callback was specified, return the callback of the given type and name.\n    if (arguments.length < 2) {\n      while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n      return;\n    }\n\n    // If a type was specified, set the callback for the given type and name.\n    // Otherwise, if a null callback was specified, remove callbacks of the given name.\n    if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n    while (++i < n) {\n      if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n      else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n    }\n\n    return this;\n  },\n  copy: function() {\n    var copy = {}, _ = this._;\n    for (var t in _) copy[t] = _[t].slice();\n    return new Dispatch(copy);\n  },\n  call: function(type, that) {\n    if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n    if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n    for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n  },\n  apply: function(type, that, args) {\n    if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n    for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n  }\n};\n\nfunction get(type, name) {\n  for (var i = 0, n = type.length, c; i < n; ++i) {\n    if ((c = type[i]).name === name) {\n      return c.value;\n    }\n  }\n}\n\nfunction set(type, name, callback) {\n  for (var i = 0, n = type.length; i < n; ++i) {\n    if (type[i].name === name) {\n      type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n      break;\n    }\n  }\n  if (callback != null) type.push({name: name, value: callback});\n  return type;\n}\n\nexport default dispatch;\n", "export {default as create} from \"./create.js\";\nexport {default as creator} from \"./creator.js\";\nexport {default as local} from \"./local.js\";\nexport {default as matcher} from \"./matcher.js\";\nexport {default as namespace} from \"./namespace.js\";\nexport {default as namespaces} from \"./namespaces.js\";\nexport {default as pointer} from \"./pointer.js\";\nexport {default as pointers} from \"./pointers.js\";\nexport {default as select} from \"./select.js\";\nexport {default as selectAll} from \"./selectAll.js\";\nexport {default as selection} from \"./selection/index.js\";\nexport {default as selector} from \"./selector.js\";\nexport {default as selectorAll} from \"./selectorAll.js\";\nexport {styleValue as style} from \"./selection/style.js\";\nexport {default as window} from \"./window.js\";\n", "import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n  return function() {\n    var document = this.ownerDocument,\n        uri = this.namespaceURI;\n    return uri === xhtml && document.documentElement.namespaceURI === xhtml\n        ? document.createElement(name)\n        : document.createElementNS(uri, name);\n  };\n}\n\nfunction creatorFixed(fullname) {\n  return function() {\n    return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n  };\n}\n\nexport default function(name) {\n  var fullname = namespace(name);\n  return (fullname.local\n      ? creatorFixed\n      : creatorInherit)(fullname);\n}\n", "import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n  var prefix = name += \"\", i = prefix.indexOf(\":\");\n  if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n  return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n", "export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n  svg: \"http://www.w3.org/2000/svg\",\n  xhtml: xhtml,\n  xlink: \"http://www.w3.org/1999/xlink\",\n  xml: \"http://www.w3.org/XML/1998/namespace\",\n  xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n", "import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n  this._groups = groups;\n  this._parents = parents;\n}\n\nfunction selection() {\n  return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n  return this;\n}\n\nSelection.prototype = selection.prototype = {\n  constructor: Selection,\n  select: selection_select,\n  selectAll: selection_selectAll,\n  selectChild: selection_selectChild,\n  selectChildren: selection_selectChildren,\n  filter: selection_filter,\n  data: selection_data,\n  enter: selection_enter,\n  exit: selection_exit,\n  join: selection_join,\n  merge: selection_merge,\n  selection: selection_selection,\n  order: selection_order,\n  sort: selection_sort,\n  call: selection_call,\n  nodes: selection_nodes,\n  node: selection_node,\n  size: selection_size,\n  empty: selection_empty,\n  each: selection_each,\n  attr: selection_attr,\n  style: selection_style,\n  property: selection_property,\n  classed: selection_classed,\n  text: selection_text,\n  html: selection_html,\n  raise: selection_raise,\n  lower: selection_lower,\n  append: selection_append,\n  insert: selection_insert,\n  remove: selection_remove,\n  clone: selection_clone,\n  datum: selection_datum,\n  on: selection_on,\n  dispatch: selection_dispatch,\n  [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n", "import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n  if (typeof select !== \"function\") select = selector(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n        if (\"__data__\" in node) subnode.__data__ = node.__data__;\n        subgroup[i] = subnode;\n      }\n    }\n  }\n\n  return new Selection(subgroups, this._parents);\n}\n", "function none() {}\n\nexport default function(selector) {\n  return selector == null ? none : function() {\n    return this.querySelector(selector);\n  };\n}\n", "import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n  return function() {\n    return array(select.apply(this, arguments));\n  };\n}\n\nexport default function(select) {\n  if (typeof select === \"function\") select = arrayAll(select);\n  else select = selectorAll(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        subgroups.push(select.call(node, node.__data__, i, group));\n        parents.push(node);\n      }\n    }\n  }\n\n  return new Selection(subgroups, parents);\n}\n", "// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don\u2019t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n  return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n", "function empty() {\n  return [];\n}\n\nexport default function(selector) {\n  return selector == null ? empty : function() {\n    return this.querySelectorAll(selector);\n  };\n}\n", "import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n  return function() {\n    return find.call(this.children, match);\n  };\n}\n\nfunction childFirst() {\n  return this.firstElementChild;\n}\n\nexport default function(match) {\n  return this.select(match == null ? childFirst\n      : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n", "export default function(selector) {\n  return function() {\n    return this.matches(selector);\n  };\n}\n\nexport function childMatcher(selector) {\n  return function(node) {\n    return node.matches(selector);\n  };\n}\n\n", "import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n  return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n  return function() {\n    return filter.call(this.children, match);\n  };\n}\n\nexport default function(match) {\n  return this.selectAll(match == null ? children\n      : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n", "import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n  if (typeof match !== \"function\") match = matcher(match);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n        subgroup.push(node);\n      }\n    }\n  }\n\n  return new Selection(subgroups, this._parents);\n}\n", "import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n  var i = 0,\n      node,\n      groupLength = group.length,\n      dataLength = data.length;\n\n  // Put any non-null nodes that fit into update.\n  // Put any null nodes into enter.\n  // Put any remaining data into enter.\n  for (; i < dataLength; ++i) {\n    if (node = group[i]) {\n      node.__data__ = data[i];\n      update[i] = node;\n    } else {\n      enter[i] = new EnterNode(parent, data[i]);\n    }\n  }\n\n  // Put any non-null nodes that don\u2019t fit into exit.\n  for (; i < groupLength; ++i) {\n    if (node = group[i]) {\n      exit[i] = node;\n    }\n  }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n  var i,\n      node,\n      nodeByKeyValue = new Map,\n      groupLength = group.length,\n      dataLength = data.length,\n      keyValues = new Array(groupLength),\n      keyValue;\n\n  // Compute the key for each node.\n  // If multiple nodes have the same key, the duplicates are added to exit.\n  for (i = 0; i < groupLength; ++i) {\n    if (node = group[i]) {\n      keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n      if (nodeByKeyValue.has(keyValue)) {\n        exit[i] = node;\n      } else {\n        nodeByKeyValue.set(keyValue, node);\n      }\n    }\n  }\n\n  // Compute the key for each datum.\n  // If there a node associated with this key, join and add it to update.\n  // If there is not (or the key is a duplicate), add it to enter.\n  for (i = 0; i < dataLength; ++i) {\n    keyValue = key.call(parent, data[i], i, data) + \"\";\n    if (node = nodeByKeyValue.get(keyValue)) {\n      update[i] = node;\n      node.__data__ = data[i];\n      nodeByKeyValue.delete(keyValue);\n    } else {\n      enter[i] = new EnterNode(parent, data[i]);\n    }\n  }\n\n  // Add any remaining nodes that were not bound to data to exit.\n  for (i = 0; i < groupLength; ++i) {\n    if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n      exit[i] = node;\n    }\n  }\n}\n\nfunction datum(node) {\n  return node.__data__;\n}\n\nexport default function(value, key) {\n  if (!arguments.length) return Array.from(this, datum);\n\n  var bind = key ? bindKey : bindIndex,\n      parents = this._parents,\n      groups = this._groups;\n\n  if (typeof value !== \"function\") value = constant(value);\n\n  for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n    var parent = parents[j],\n        group = groups[j],\n        groupLength = group.length,\n        data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n        dataLength = data.length,\n        enterGroup = enter[j] = new Array(dataLength),\n        updateGroup = update[j] = new Array(dataLength),\n        exitGroup = exit[j] = new Array(groupLength);\n\n    bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n    // Now connect the enter nodes to their following update node, such that\n    // appendChild can insert the materialized enter node before this node,\n    // rather than at the end of the parent node.\n    for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n      if (previous = enterGroup[i0]) {\n        if (i0 >= i1) i1 = i0 + 1;\n        while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n        previous._next = next || null;\n      }\n    }\n  }\n\n  update = new Selection(update, parents);\n  update._enter = enter;\n  update._exit = exit;\n  return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn\u2019t worried about \u201Clive\u201D collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don\u2019t; we\u2019d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n  return typeof data === \"object\" && \"length\" in data\n    ? data // Array, TypedArray, NodeList, array-like\n    : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n", "import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n  return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n  this.ownerDocument = parent.ownerDocument;\n  this.namespaceURI = parent.namespaceURI;\n  this._next = null;\n  this._parent = parent;\n  this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n  constructor: EnterNode,\n  appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n  insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n  querySelector: function(selector) { return this._parent.querySelector(selector); },\n  querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n", "export default function(update) {\n  return new Array(update.length);\n}\n", "export default function(x) {\n  return function() {\n    return x;\n  };\n}\n", "import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n  return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n", "export default function(onenter, onupdate, onexit) {\n  var enter = this.enter(), update = this, exit = this.exit();\n  if (typeof onenter === \"function\") {\n    enter = onenter(enter);\n    if (enter) enter = enter.selection();\n  } else {\n    enter = enter.append(onenter + \"\");\n  }\n  if (onupdate != null) {\n    update = onupdate(update);\n    if (update) update = update.selection();\n  }\n  if (onexit == null) exit.remove(); else onexit(exit);\n  return enter && update ? enter.merge(update).order() : update;\n}\n", "import {Selection} from \"./index.js\";\n\nexport default function(context) {\n  var selection = context.selection ? context.selection() : context;\n\n  for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group0[i] || group1[i]) {\n        merge[i] = node;\n      }\n    }\n  }\n\n  for (; j < m0; ++j) {\n    merges[j] = groups0[j];\n  }\n\n  return new Selection(merges, this._parents);\n}\n", "export default function() {\n\n  for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n    for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n      if (node = group[i]) {\n        if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n        next = node;\n      }\n    }\n  }\n\n  return this;\n}\n", "import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n  if (!compare) compare = ascending;\n\n  function compareNode(a, b) {\n    return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n  }\n\n  for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        sortgroup[i] = node;\n      }\n    }\n    sortgroup.sort(compareNode);\n  }\n\n  return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n", "export default function() {\n  var callback = arguments[0];\n  arguments[0] = this;\n  callback.apply(null, arguments);\n  return this;\n}\n", "export default function() {\n  return Array.from(this);\n}\n", "export default function() {\n\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n      var node = group[i];\n      if (node) return node;\n    }\n  }\n\n  return null;\n}\n", "export default function() {\n  let size = 0;\n  for (const node of this) ++size; // eslint-disable-line no-unused-vars\n  return size;\n}\n", "export default function() {\n  return !this.node();\n}\n", "export default function(callback) {\n\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n      if (node = group[i]) callback.call(node, node.__data__, i, group);\n    }\n  }\n\n  return this;\n}\n", "import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n  return function() {\n    this.removeAttribute(name);\n  };\n}\n\nfunction attrRemoveNS(fullname) {\n  return function() {\n    this.removeAttributeNS(fullname.space, fullname.local);\n  };\n}\n\nfunction attrConstant(name, value) {\n  return function() {\n    this.setAttribute(name, value);\n  };\n}\n\nfunction attrConstantNS(fullname, value) {\n  return function() {\n    this.setAttributeNS(fullname.space, fullname.local, value);\n  };\n}\n\nfunction attrFunction(name, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.removeAttribute(name);\n    else this.setAttribute(name, v);\n  };\n}\n\nfunction attrFunctionNS(fullname, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n    else this.setAttributeNS(fullname.space, fullname.local, v);\n  };\n}\n\nexport default function(name, value) {\n  var fullname = namespace(name);\n\n  if (arguments.length < 2) {\n    var node = this.node();\n    return fullname.local\n        ? node.getAttributeNS(fullname.space, fullname.local)\n        : node.getAttribute(fullname);\n  }\n\n  return this.each((value == null\n      ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n      ? (fullname.local ? attrFunctionNS : attrFunction)\n      : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n", "import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n  return function() {\n    this.style.removeProperty(name);\n  };\n}\n\nfunction styleConstant(name, value, priority) {\n  return function() {\n    this.style.setProperty(name, value, priority);\n  };\n}\n\nfunction styleFunction(name, value, priority) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.style.removeProperty(name);\n    else this.style.setProperty(name, v, priority);\n  };\n}\n\nexport default function(name, value, priority) {\n  return arguments.length > 1\n      ? this.each((value == null\n            ? styleRemove : typeof value === \"function\"\n            ? styleFunction\n            : styleConstant)(name, value, priority == null ? \"\" : priority))\n      : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n  return node.style.getPropertyValue(name)\n      || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n", "export default function(node) {\n  return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n      || (node.document && node) // node is a Window\n      || node.defaultView; // node is a Document\n}\n", "function propertyRemove(name) {\n  return function() {\n    delete this[name];\n  };\n}\n\nfunction propertyConstant(name, value) {\n  return function() {\n    this[name] = value;\n  };\n}\n\nfunction propertyFunction(name, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) delete this[name];\n    else this[name] = v;\n  };\n}\n\nexport default function(name, value) {\n  return arguments.length > 1\n      ? this.each((value == null\n          ? propertyRemove : typeof value === \"function\"\n          ? propertyFunction\n          : propertyConstant)(name, value))\n      : this.node()[name];\n}\n", "function classArray(string) {\n  return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n  return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n  this._node = node;\n  this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n  add: function(name) {\n    var i = this._names.indexOf(name);\n    if (i < 0) {\n      this._names.push(name);\n      this._node.setAttribute(\"class\", this._names.join(\" \"));\n    }\n  },\n  remove: function(name) {\n    var i = this._names.indexOf(name);\n    if (i >= 0) {\n      this._names.splice(i, 1);\n      this._node.setAttribute(\"class\", this._names.join(\" \"));\n    }\n  },\n  contains: function(name) {\n    return this._names.indexOf(name) >= 0;\n  }\n};\n\nfunction classedAdd(node, names) {\n  var list = classList(node), i = -1, n = names.length;\n  while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n  var list = classList(node), i = -1, n = names.length;\n  while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n  return function() {\n    classedAdd(this, names);\n  };\n}\n\nfunction classedFalse(names) {\n  return function() {\n    classedRemove(this, names);\n  };\n}\n\nfunction classedFunction(names, value) {\n  return function() {\n    (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n  };\n}\n\nexport default function(name, value) {\n  var names = classArray(name + \"\");\n\n  if (arguments.length < 2) {\n    var list = classList(this.node()), i = -1, n = names.length;\n    while (++i < n) if (!list.contains(names[i])) return false;\n    return true;\n  }\n\n  return this.each((typeof value === \"function\"\n      ? classedFunction : value\n      ? classedTrue\n      : classedFalse)(names, value));\n}\n", "function textRemove() {\n  this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n  return function() {\n    this.textContent = value;\n  };\n}\n\nfunction textFunction(value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    this.textContent = v == null ? \"\" : v;\n  };\n}\n\nexport default function(value) {\n  return arguments.length\n      ? this.each(value == null\n          ? textRemove : (typeof value === \"function\"\n          ? textFunction\n          : textConstant)(value))\n      : this.node().textContent;\n}\n", "function htmlRemove() {\n  this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n  return function() {\n    this.innerHTML = value;\n  };\n}\n\nfunction htmlFunction(value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    this.innerHTML = v == null ? \"\" : v;\n  };\n}\n\nexport default function(value) {\n  return arguments.length\n      ? this.each(value == null\n          ? htmlRemove : (typeof value === \"function\"\n          ? htmlFunction\n          : htmlConstant)(value))\n      : this.node().innerHTML;\n}\n", "function raise() {\n  if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n  return this.each(raise);\n}\n", "function lower() {\n  if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n  return this.each(lower);\n}\n", "import creator from \"../creator.js\";\n\nexport default function(name) {\n  var create = typeof name === \"function\" ? name : creator(name);\n  return this.select(function() {\n    return this.appendChild(create.apply(this, arguments));\n  });\n}\n", "import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n  return null;\n}\n\nexport default function(name, before) {\n  var create = typeof name === \"function\" ? name : creator(name),\n      select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n  return this.select(function() {\n    return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n  });\n}\n", "function remove() {\n  var parent = this.parentNode;\n  if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n  return this.each(remove);\n}\n", "function selection_cloneShallow() {\n  var clone = this.cloneNode(false), parent = this.parentNode;\n  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n  var clone = this.cloneNode(true), parent = this.parentNode;\n  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n  return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n", "export default function(value) {\n  return arguments.length\n      ? this.property(\"__data__\", value)\n      : this.node().__data__;\n}\n", "function contextListener(listener) {\n  return function(event) {\n    listener.call(this, event, this.__data__);\n  };\n}\n\nfunction parseTypenames(typenames) {\n  return typenames.trim().split(/^|\\s+/).map(function(t) {\n    var name = \"\", i = t.indexOf(\".\");\n    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n    return {type: t, name: name};\n  });\n}\n\nfunction onRemove(typename) {\n  return function() {\n    var on = this.__on;\n    if (!on) return;\n    for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n      if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n        this.removeEventListener(o.type, o.listener, o.options);\n      } else {\n        on[++i] = o;\n      }\n    }\n    if (++i) on.length = i;\n    else delete this.__on;\n  };\n}\n\nfunction onAdd(typename, value, options) {\n  return function() {\n    var on = this.__on, o, listener = contextListener(value);\n    if (on) for (var j = 0, m = on.length; j < m; ++j) {\n      if ((o = on[j]).type === typename.type && o.name === typename.name) {\n        this.removeEventListener(o.type, o.listener, o.options);\n        this.addEventListener(o.type, o.listener = listener, o.options = options);\n        o.value = value;\n        return;\n      }\n    }\n    this.addEventListener(typename.type, listener, options);\n    o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n    if (!on) this.__on = [o];\n    else on.push(o);\n  };\n}\n\nexport default function(typename, value, options) {\n  var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n  if (arguments.length < 2) {\n    var on = this.node().__on;\n    if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n      for (i = 0, o = on[j]; i < n; ++i) {\n        if ((t = typenames[i]).type === o.type && t.name === o.name) {\n          return o.value;\n        }\n      }\n    }\n    return;\n  }\n\n  on = value ? onAdd : onRemove;\n  for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n  return this;\n}\n", "import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n  var window = defaultView(node),\n      event = window.CustomEvent;\n\n  if (typeof event === \"function\") {\n    event = new event(type, params);\n  } else {\n    event = window.document.createEvent(\"Event\");\n    if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n    else event.initEvent(type, false, false);\n  }\n\n  node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n  return function() {\n    return dispatchEvent(this, type, params);\n  };\n}\n\nfunction dispatchFunction(type, params) {\n  return function() {\n    return dispatchEvent(this, type, params.apply(this, arguments));\n  };\n}\n\nexport default function(type, params) {\n  return this.each((typeof params === \"function\"\n      ? dispatchFunction\n      : dispatchConstant)(type, params));\n}\n", "export default function*() {\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n      if (node = group[i]) yield node;\n    }\n  }\n}\n", "export {default as interpolate} from \"./value.js\";\nexport {default as interpolateArray} from \"./array.js\";\nexport {default as interpolateBasis} from \"./basis.js\";\nexport {default as interpolateBasisClosed} from \"./basisClosed.js\";\nexport {default as interpolateDate} from \"./date.js\";\nexport {default as interpolateDiscrete} from \"./discrete.js\";\nexport {default as interpolateHue} from \"./hue.js\";\nexport {default as interpolateNumber} from \"./number.js\";\nexport {default as interpolateNumberArray} from \"./numberArray.js\";\nexport {default as interpolateObject} from \"./object.js\";\nexport {default as interpolateRound} from \"./round.js\";\nexport {default as interpolateString} from \"./string.js\";\nexport {interpolateTransformCss, interpolateTransformSvg} from \"./transform/index.js\";\nexport {default as interpolateZoom} from \"./zoom.js\";\nexport {default as interpolateRgb, rgbBasis as interpolateRgbBasis, rgbBasisClosed as interpolateRgbBasisClosed} from \"./rgb.js\";\nexport {default as interpolateHsl, hslLong as interpolateHslLong} from \"./hsl.js\";\nexport {default as interpolateLab} from \"./lab.js\";\nexport {default as interpolateHcl, hclLong as interpolateHclLong} from \"./hcl.js\";\nexport {default as interpolateCubehelix, cubehelixLong as interpolateCubehelixLong} from \"./cubehelix.js\";\nexport {default as piecewise} from \"./piecewise.js\";\nexport {default as quantize} from \"./quantize.js\";\n", "export {default as color, rgb, hsl} from \"./color.js\";\nexport {default as lab, hcl, lch, gray} from \"./lab.js\";\nexport {default as cubehelix} from \"./cubehelix.js\";\n", "import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n    reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n    reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n    reHex = /^#([0-9a-f]{3,8})$/,\n    reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n    reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n    reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n    reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n    reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n    reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n  aliceblue: 0xf0f8ff,\n  antiquewhite: 0xfaebd7,\n  aqua: 0x00ffff,\n  aquamarine: 0x7fffd4,\n  azure: 0xf0ffff,\n  beige: 0xf5f5dc,\n  bisque: 0xffe4c4,\n  black: 0x000000,\n  blanchedalmond: 0xffebcd,\n  blue: 0x0000ff,\n  blueviolet: 0x8a2be2,\n  brown: 0xa52a2a,\n  burlywood: 0xdeb887,\n  cadetblue: 0x5f9ea0,\n  chartreuse: 0x7fff00,\n  chocolate: 0xd2691e,\n  coral: 0xff7f50,\n  cornflowerblue: 0x6495ed,\n  cornsilk: 0xfff8dc,\n  crimson: 0xdc143c,\n  cyan: 0x00ffff,\n  darkblue: 0x00008b,\n  darkcyan: 0x008b8b,\n  darkgoldenrod: 0xb8860b,\n  darkgray: 0xa9a9a9,\n  darkgreen: 0x006400,\n  darkgrey: 0xa9a9a9,\n  darkkhaki: 0xbdb76b,\n  darkmagenta: 0x8b008b,\n  darkolivegreen: 0x556b2f,\n  darkorange: 0xff8c00,\n  darkorchid: 0x9932cc,\n  darkred: 0x8b0000,\n  darksalmon: 0xe9967a,\n  darkseagreen: 0x8fbc8f,\n  darkslateblue: 0x483d8b,\n  darkslategray: 0x2f4f4f,\n  darkslategrey: 0x2f4f4f,\n  darkturquoise: 0x00ced1,\n  darkviolet: 0x9400d3,\n  deeppink: 0xff1493,\n  deepskyblue: 0x00bfff,\n  dimgray: 0x696969,\n  dimgrey: 0x696969,\n  dodgerblue: 0x1e90ff,\n  firebrick: 0xb22222,\n  floralwhite: 0xfffaf0,\n  forestgreen: 0x228b22,\n  fuchsia: 0xff00ff,\n  gainsboro: 0xdcdcdc,\n  ghostwhite: 0xf8f8ff,\n  gold: 0xffd700,\n  goldenrod: 0xdaa520,\n  gray: 0x808080,\n  green: 0x008000,\n  greenyellow: 0xadff2f,\n  grey: 0x808080,\n  honeydew: 0xf0fff0,\n  hotpink: 0xff69b4,\n  indianred: 0xcd5c5c,\n  indigo: 0x4b0082,\n  ivory: 0xfffff0,\n  khaki: 0xf0e68c,\n  lavender: 0xe6e6fa,\n  lavenderblush: 0xfff0f5,\n  lawngreen: 0x7cfc00,\n  lemonchiffon: 0xfffacd,\n  lightblue: 0xadd8e6,\n  lightcoral: 0xf08080,\n  lightcyan: 0xe0ffff,\n  lightgoldenrodyellow: 0xfafad2,\n  lightgray: 0xd3d3d3,\n  lightgreen: 0x90ee90,\n  lightgrey: 0xd3d3d3,\n  lightpink: 0xffb6c1,\n  lightsalmon: 0xffa07a,\n  lightseagreen: 0x20b2aa,\n  lightskyblue: 0x87cefa,\n  lightslategray: 0x778899,\n  lightslategrey: 0x778899,\n  lightsteelblue: 0xb0c4de,\n  lightyellow: 0xffffe0,\n  lime: 0x00ff00,\n  limegreen: 0x32cd32,\n  linen: 0xfaf0e6,\n  magenta: 0xff00ff,\n  maroon: 0x800000,\n  mediumaquamarine: 0x66cdaa,\n  mediumblue: 0x0000cd,\n  mediumorchid: 0xba55d3,\n  mediumpurple: 0x9370db,\n  mediumseagreen: 0x3cb371,\n  mediumslateblue: 0x7b68ee,\n  mediumspringgreen: 0x00fa9a,\n  mediumturquoise: 0x48d1cc,\n  mediumvioletred: 0xc71585,\n  midnightblue: 0x191970,\n  mintcream: 0xf5fffa,\n  mistyrose: 0xffe4e1,\n  moccasin: 0xffe4b5,\n  navajowhite: 0xffdead,\n  navy: 0x000080,\n  oldlace: 0xfdf5e6,\n  olive: 0x808000,\n  olivedrab: 0x6b8e23,\n  orange: 0xffa500,\n  orangered: 0xff4500,\n  orchid: 0xda70d6,\n  palegoldenrod: 0xeee8aa,\n  palegreen: 0x98fb98,\n  paleturquoise: 0xafeeee,\n  palevioletred: 0xdb7093,\n  papayawhip: 0xffefd5,\n  peachpuff: 0xffdab9,\n  peru: 0xcd853f,\n  pink: 0xffc0cb,\n  plum: 0xdda0dd,\n  powderblue: 0xb0e0e6,\n  purple: 0x800080,\n  rebeccapurple: 0x663399,\n  red: 0xff0000,\n  rosybrown: 0xbc8f8f,\n  royalblue: 0x4169e1,\n  saddlebrown: 0x8b4513,\n  salmon: 0xfa8072,\n  sandybrown: 0xf4a460,\n  seagreen: 0x2e8b57,\n  seashell: 0xfff5ee,\n  sienna: 0xa0522d,\n  silver: 0xc0c0c0,\n  skyblue: 0x87ceeb,\n  slateblue: 0x6a5acd,\n  slategray: 0x708090,\n  slategrey: 0x708090,\n  snow: 0xfffafa,\n  springgreen: 0x00ff7f,\n  steelblue: 0x4682b4,\n  tan: 0xd2b48c,\n  teal: 0x008080,\n  thistle: 0xd8bfd8,\n  tomato: 0xff6347,\n  turquoise: 0x40e0d0,\n  violet: 0xee82ee,\n  wheat: 0xf5deb3,\n  white: 0xffffff,\n  whitesmoke: 0xf5f5f5,\n  yellow: 0xffff00,\n  yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n  copy(channels) {\n    return Object.assign(new this.constructor, this, channels);\n  },\n  displayable() {\n    return this.rgb().displayable();\n  },\n  hex: color_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: color_formatHex,\n  formatHex8: color_formatHex8,\n  formatHsl: color_formatHsl,\n  formatRgb: color_formatRgb,\n  toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n  return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n  return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n  return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n  return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n  var m, l;\n  format = (format + \"\").trim().toLowerCase();\n  return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n      : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n      : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n      : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n      : null) // invalid hex\n      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n      : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n      : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n      : null;\n}\n\nfunction rgbn(n) {\n  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n  if (a <= 0) r = g = b = NaN;\n  return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Rgb;\n  o = o.rgb();\n  return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n  this.r = +r;\n  this.g = +g;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  rgb() {\n    return this;\n  },\n  clamp() {\n    return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n  },\n  displayable() {\n    return (-0.5 <= this.r && this.r < 255.5)\n        && (-0.5 <= this.g && this.g < 255.5)\n        && (-0.5 <= this.b && this.b < 255.5)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: rgb_formatHex,\n  formatHex8: rgb_formatHex8,\n  formatRgb: rgb_formatRgb,\n  toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n  return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n  const a = clampa(this.opacity);\n  return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n  return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n  return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n  value = clampi(value);\n  return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n  if (a <= 0) h = s = l = NaN;\n  else if (l <= 0 || l >= 1) h = s = NaN;\n  else if (s <= 0) h = NaN;\n  return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Hsl;\n  if (o instanceof Hsl) return o;\n  o = o.rgb();\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      min = Math.min(r, g, b),\n      max = Math.max(r, g, b),\n      h = NaN,\n      s = max - min,\n      l = (max + min) / 2;\n  if (s) {\n    if (r === max) h = (g - b) / s + (g < b) * 6;\n    else if (g === max) h = (b - r) / s + 2;\n    else h = (r - g) / s + 4;\n    s /= l < 0.5 ? max + min : 2 - max - min;\n    h *= 60;\n  } else {\n    s = l > 0 && l < 1 ? 0 : h;\n  }\n  return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n  brighter(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb() {\n    var h = this.h % 360 + (this.h < 0) * 360,\n        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n        l = this.l,\n        m2 = l + (l < 0.5 ? l : 1 - l) * s,\n        m1 = 2 * l - m2;\n    return new Rgb(\n      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n      hsl2rgb(h, m1, m2),\n      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n      this.opacity\n    );\n  },\n  clamp() {\n    return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n  },\n  displayable() {\n    return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n        && (0 <= this.l && this.l <= 1)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  formatHsl() {\n    const a = clampa(this.opacity);\n    return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n  }\n}));\n\nfunction clamph(value) {\n  value = (value || 0) % 360;\n  return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n  return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n  return (h < 60 ? m1 + (m2 - m1) * h / 60\n      : h < 180 ? m2\n      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n      : m1) * 255;\n}\n", "export default function(constructor, factory, prototype) {\n  constructor.prototype = factory.prototype = prototype;\n  prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n  var prototype = Object.create(parent.prototype);\n  for (var key in definition) prototype[key] = definition[key];\n  return prototype;\n}\n", "import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n  var color = gamma(y);\n\n  function rgb(start, end) {\n    var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n        g = color(start.g, end.g),\n        b = color(start.b, end.b),\n        opacity = nogamma(start.opacity, end.opacity);\n    return function(t) {\n      start.r = r(t);\n      start.g = g(t);\n      start.b = b(t);\n      start.opacity = opacity(t);\n      return start + \"\";\n    };\n  }\n\n  rgb.gamma = rgbGamma;\n\n  return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n  return function(colors) {\n    var n = colors.length,\n        r = new Array(n),\n        g = new Array(n),\n        b = new Array(n),\n        i, color;\n    for (i = 0; i < n; ++i) {\n      color = colorRgb(colors[i]);\n      r[i] = color.r || 0;\n      g[i] = color.g || 0;\n      b[i] = color.b || 0;\n    }\n    r = spline(r);\n    g = spline(g);\n    b = spline(b);\n    color.opacity = 1;\n    return function(t) {\n      color.r = r(t);\n      color.g = g(t);\n      color.b = b(t);\n      return color + \"\";\n    };\n  };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n", "export function basis(t1, v0, v1, v2, v3) {\n  var t2 = t1 * t1, t3 = t2 * t1;\n  return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n      + (4 - 6 * t2 + 3 * t3) * v1\n      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n      + t3 * v3) / 6;\n}\n\nexport default function(values) {\n  var n = values.length - 1;\n  return function(t) {\n    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n        v1 = values[i],\n        v2 = values[i + 1],\n        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n", "import {basis} from \"./basis.js\";\n\nexport default function(values) {\n  var n = values.length;\n  return function(t) {\n    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n        v0 = values[(i + n - 1) % n],\n        v1 = values[i % n],\n        v2 = values[(i + 1) % n],\n        v3 = values[(i + 2) % n];\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n", "import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n  return function(t) {\n    return a + t * d;\n  };\n}\n\nfunction exponential(a, b, y) {\n  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n    return Math.pow(a + t * b, y);\n  };\n}\n\nexport function hue(a, b) {\n  var d = b - a;\n  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n  return (y = +y) === 1 ? nogamma : function(a, b) {\n    return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n  };\n}\n\nexport default function nogamma(a, b) {\n  var d = b - a;\n  return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n", "export default x => () => x;\n", "export default function(a, b) {\n  return a = +a, b = +b, function(t) {\n    return a * (1 - t) + b * t;\n  };\n}\n", "import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n    reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n  return function() {\n    return b;\n  };\n}\n\nfunction one(b) {\n  return function(t) {\n    return b(t) + \"\";\n  };\n}\n\nexport default function(a, b) {\n  var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n      am, // current match in a\n      bm, // current match in b\n      bs, // string preceding current number in b, if any\n      i = -1, // index in s\n      s = [], // string constants and placeholders\n      q = []; // number interpolators\n\n  // Coerce inputs to strings.\n  a = a + \"\", b = b + \"\";\n\n  // Interpolate pairs of numbers in a & b.\n  while ((am = reA.exec(a))\n      && (bm = reB.exec(b))) {\n    if ((bs = bm.index) > bi) { // a string precedes the next number in b\n      bs = b.slice(bi, bs);\n      if (s[i]) s[i] += bs; // coalesce with previous string\n      else s[++i] = bs;\n    }\n    if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n      if (s[i]) s[i] += bm; // coalesce with previous string\n      else s[++i] = bm;\n    } else { // interpolate non-matching numbers\n      s[++i] = null;\n      q.push({i: i, x: number(am, bm)});\n    }\n    bi = reB.lastIndex;\n  }\n\n  // Add remains of b.\n  if (bi < b.length) {\n    bs = b.slice(bi);\n    if (s[i]) s[i] += bs; // coalesce with previous string\n    else s[++i] = bs;\n  }\n\n  // Special optimization for only a single match.\n  // Otherwise, interpolate each of the numbers and rejoin the string.\n  return s.length < 2 ? (q[0]\n      ? one(q[0].x)\n      : zero(b))\n      : (b = q.length, function(t) {\n          for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n          return s.join(\"\");\n        });\n}\n", "import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n  function pop(s) {\n    return s.length ? s.pop() + \" \" : \"\";\n  }\n\n  function translate(xa, ya, xb, yb, s, q) {\n    if (xa !== xb || ya !== yb) {\n      var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n    } else if (xb || yb) {\n      s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n    }\n  }\n\n  function rotate(a, b, s, q) {\n    if (a !== b) {\n      if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n      q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n    } else if (b) {\n      s.push(pop(s) + \"rotate(\" + b + degParen);\n    }\n  }\n\n  function skewX(a, b, s, q) {\n    if (a !== b) {\n      q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n    } else if (b) {\n      s.push(pop(s) + \"skewX(\" + b + degParen);\n    }\n  }\n\n  function scale(xa, ya, xb, yb, s, q) {\n    if (xa !== xb || ya !== yb) {\n      var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n    } else if (xb !== 1 || yb !== 1) {\n      s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n    }\n  }\n\n  return function(a, b) {\n    var s = [], // string constants and placeholders\n        q = []; // number interpolators\n    a = parse(a), b = parse(b);\n    translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n    rotate(a.rotate, b.rotate, s, q);\n    skewX(a.skewX, b.skewX, s, q);\n    scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n    a = b = null; // gc\n    return function(t) {\n      var i = -1, n = q.length, o;\n      while (++i < n) s[(o = q[i]).i] = o.x(t);\n      return s.join(\"\");\n    };\n  };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n", "import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n  const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n  return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n  if (value == null) return identity;\n  if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n  svgNode.setAttribute(\"transform\", value);\n  if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n  value = value.matrix;\n  return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n", "var degrees = 180 / Math.PI;\n\nexport var identity = {\n  translateX: 0,\n  translateY: 0,\n  rotate: 0,\n  skewX: 0,\n  scaleX: 1,\n  scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n  var scaleX, scaleY, skewX;\n  if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n  if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n  if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n  if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n  return {\n    translateX: e,\n    translateY: f,\n    rotate: Math.atan2(b, a) * degrees,\n    skewX: Math.atan(skewX) * degrees,\n    scaleX: scaleX,\n    scaleY: scaleY\n  };\n}\n", "import \"./selection/index.js\";\nexport {default as transition} from \"./transition/index.js\";\nexport {default as active} from \"./active.js\";\nexport {default as interrupt} from \"./interrupt.js\";\n", "import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n", "import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n  return this.each(function() {\n    interrupt(this, name);\n  });\n}\n", "import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n  var schedules = node.__transition,\n      schedule,\n      active,\n      empty = true,\n      i;\n\n  if (!schedules) return;\n\n  name = name == null ? null : name + \"\";\n\n  for (i in schedules) {\n    if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n    active = schedule.state > STARTING && schedule.state < ENDING;\n    schedule.state = ENDED;\n    schedule.timer.stop();\n    schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n    delete schedules[i];\n  }\n\n  if (empty) delete node.__transition;\n}\n", "import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n  var schedules = node.__transition;\n  if (!schedules) node.__transition = {};\n  else if (id in schedules) return;\n  create(node, id, {\n    name: name,\n    index: index, // For context during callback.\n    group: group, // For context during callback.\n    on: emptyOn,\n    tween: emptyTween,\n    time: timing.time,\n    delay: timing.delay,\n    duration: timing.duration,\n    ease: timing.ease,\n    timer: null,\n    state: CREATED\n  });\n}\n\nexport function init(node, id) {\n  var schedule = get(node, id);\n  if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n  return schedule;\n}\n\nexport function set(node, id) {\n  var schedule = get(node, id);\n  if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n  return schedule;\n}\n\nexport function get(node, id) {\n  var schedule = node.__transition;\n  if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n  return schedule;\n}\n\nfunction create(node, id, self) {\n  var schedules = node.__transition,\n      tween;\n\n  // Initialize the self timer when the transition is created.\n  // Note the actual delay is not known until the first callback!\n  schedules[id] = self;\n  self.timer = timer(schedule, 0, self.time);\n\n  function schedule(elapsed) {\n    self.state = SCHEDULED;\n    self.timer.restart(start, self.delay, self.time);\n\n    // If the elapsed delay is less than our first sleep, start immediately.\n    if (self.delay <= elapsed) start(elapsed - self.delay);\n  }\n\n  function start(elapsed) {\n    var i, j, n, o;\n\n    // If the state is not SCHEDULED, then we previously errored on start.\n    if (self.state !== SCHEDULED) return stop();\n\n    for (i in schedules) {\n      o = schedules[i];\n      if (o.name !== self.name) continue;\n\n      // While this element already has a starting transition during this frame,\n      // defer starting an interrupting transition until that transition has a\n      // chance to tick (and possibly end); see d3/d3-transition#54!\n      if (o.state === STARTED) return timeout(start);\n\n      // Interrupt the active transition, if any.\n      if (o.state === RUNNING) {\n        o.state = ENDED;\n        o.timer.stop();\n        o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n        delete schedules[i];\n      }\n\n      // Cancel any pre-empted transitions.\n      else if (+i < id) {\n        o.state = ENDED;\n        o.timer.stop();\n        o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n        delete schedules[i];\n      }\n    }\n\n    // Defer the first tick to end of the current frame; see d3/d3#1576.\n    // Note the transition may be canceled after start and before the first tick!\n    // Note this must be scheduled before the start event; see d3/d3-transition#16!\n    // Assuming this is successful, subsequent callbacks go straight to tick.\n    timeout(function() {\n      if (self.state === STARTED) {\n        self.state = RUNNING;\n        self.timer.restart(tick, self.delay, self.time);\n        tick(elapsed);\n      }\n    });\n\n    // Dispatch the start event.\n    // Note this must be done before the tween are initialized.\n    self.state = STARTING;\n    self.on.call(\"start\", node, node.__data__, self.index, self.group);\n    if (self.state !== STARTING) return; // interrupted\n    self.state = STARTED;\n\n    // Initialize the tween, deleting null tween.\n    tween = new Array(n = self.tween.length);\n    for (i = 0, j = -1; i < n; ++i) {\n      if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n        tween[++j] = o;\n      }\n    }\n    tween.length = j + 1;\n  }\n\n  function tick(elapsed) {\n    var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n        i = -1,\n        n = tween.length;\n\n    while (++i < n) {\n      tween[i].call(node, t);\n    }\n\n    // Dispatch the end event.\n    if (self.state === ENDING) {\n      self.on.call(\"end\", node, node.__data__, self.index, self.group);\n      stop();\n    }\n  }\n\n  function stop() {\n    self.state = ENDED;\n    self.timer.stop();\n    delete schedules[id];\n    for (var i in schedules) return; // eslint-disable-line no-unused-vars\n    delete node.__transition;\n  }\n}\n", "export {\n  now,\n  timer,\n  timerFlush\n} from \"./timer.js\";\n\nexport {\n  default as timeout\n} from \"./timeout.js\";\n\nexport {\n  default as interval\n} from \"./interval.js\";\n", "var frame = 0, // is an animation frame pending?\n    timeout = 0, // is a timeout pending?\n    interval = 0, // are any timers active?\n    pokeDelay = 1000, // how frequently we check for clock skew\n    taskHead,\n    taskTail,\n    clockLast = 0,\n    clockNow = 0,\n    clockSkew = 0,\n    clock = typeof performance === \"object\" && performance.now ? performance : Date,\n    setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n  return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n  clockNow = 0;\n}\n\nexport function Timer() {\n  this._call =\n  this._time =\n  this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n  constructor: Timer,\n  restart: function(callback, delay, time) {\n    if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n    time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n    if (!this._next && taskTail !== this) {\n      if (taskTail) taskTail._next = this;\n      else taskHead = this;\n      taskTail = this;\n    }\n    this._call = callback;\n    this._time = time;\n    sleep();\n  },\n  stop: function() {\n    if (this._call) {\n      this._call = null;\n      this._time = Infinity;\n      sleep();\n    }\n  }\n};\n\nexport function timer(callback, delay, time) {\n  var t = new Timer;\n  t.restart(callback, delay, time);\n  return t;\n}\n\nexport function timerFlush() {\n  now(); // Get the current time, if not already set.\n  ++frame; // Pretend we\u2019ve set an alarm, if we haven\u2019t already.\n  var t = taskHead, e;\n  while (t) {\n    if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n    t = t._next;\n  }\n  --frame;\n}\n\nfunction wake() {\n  clockNow = (clockLast = clock.now()) + clockSkew;\n  frame = timeout = 0;\n  try {\n    timerFlush();\n  } finally {\n    frame = 0;\n    nap();\n    clockNow = 0;\n  }\n}\n\nfunction poke() {\n  var now = clock.now(), delay = now - clockLast;\n  if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n  var t0, t1 = taskHead, t2, time = Infinity;\n  while (t1) {\n    if (t1._call) {\n      if (time > t1._time) time = t1._time;\n      t0 = t1, t1 = t1._next;\n    } else {\n      t2 = t1._next, t1._next = null;\n      t1 = t0 ? t0._next = t2 : taskHead = t2;\n    }\n  }\n  taskTail = t0;\n  sleep(time);\n}\n\nfunction sleep(time) {\n  if (frame) return; // Soonest alarm already set, or will be.\n  if (timeout) timeout = clearTimeout(timeout);\n  var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n  if (delay > 24) {\n    if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n    if (interval) interval = clearInterval(interval);\n  } else {\n    if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n    frame = 1, setFrame(wake);\n  }\n}\n", "import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n  var t = new Timer;\n  delay = delay == null ? 0 : +delay;\n  t.restart(elapsed => {\n    t.stop();\n    callback(elapsed + delay);\n  }, delay, time);\n  return t;\n}\n", "import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n  time: null, // Set on use.\n  delay: 0,\n  duration: 250,\n  ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n  var timing;\n  while (!(timing = node.__transition) || !(timing = timing[id])) {\n    if (!(node = node.parentNode)) {\n      throw new Error(`transition ${id} not found`);\n    }\n  }\n  return timing;\n}\n\nexport default function(name) {\n  var id,\n      timing;\n\n  if (name instanceof Transition) {\n    id = name._id, name = name._name;\n  } else {\n    id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n  }\n\n  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        schedule(node, name, id, i, group, timing || inherit(node, id));\n      }\n    }\n  }\n\n  return new Transition(groups, this._parents, name, id);\n}\n", "import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n  this._groups = groups;\n  this._parents = parents;\n  this._name = name;\n  this._id = id;\n}\n\nexport default function transition(name) {\n  return selection().transition(name);\n}\n\nexport function newId() {\n  return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n  constructor: Transition,\n  select: transition_select,\n  selectAll: transition_selectAll,\n  selectChild: selection_prototype.selectChild,\n  selectChildren: selection_prototype.selectChildren,\n  filter: transition_filter,\n  merge: transition_merge,\n  selection: transition_selection,\n  transition: transition_transition,\n  call: selection_prototype.call,\n  nodes: selection_prototype.nodes,\n  node: selection_prototype.node,\n  size: selection_prototype.size,\n  empty: selection_prototype.empty,\n  each: selection_prototype.each,\n  on: transition_on,\n  attr: transition_attr,\n  attrTween: transition_attrTween,\n  style: transition_style,\n  styleTween: transition_styleTween,\n  text: transition_text,\n  textTween: transition_textTween,\n  remove: transition_remove,\n  tween: transition_tween,\n  delay: transition_delay,\n  duration: transition_duration,\n  ease: transition_ease,\n  easeVarying: transition_easeVarying,\n  end: transition_end,\n  [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n", "import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n  return function() {\n    this.removeAttribute(name);\n  };\n}\n\nfunction attrRemoveNS(fullname) {\n  return function() {\n    this.removeAttributeNS(fullname.space, fullname.local);\n  };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n  var string00,\n      string1 = value1 + \"\",\n      interpolate0;\n  return function() {\n    var string0 = this.getAttribute(name);\n    return string0 === string1 ? null\n        : string0 === string00 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, value1);\n  };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n  var string00,\n      string1 = value1 + \"\",\n      interpolate0;\n  return function() {\n    var string0 = this.getAttributeNS(fullname.space, fullname.local);\n    return string0 === string1 ? null\n        : string0 === string00 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, value1);\n  };\n}\n\nfunction attrFunction(name, interpolate, value) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0, value1 = value(this), string1;\n    if (value1 == null) return void this.removeAttribute(name);\n    string0 = this.getAttribute(name);\n    string1 = value1 + \"\";\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n  };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0, value1 = value(this), string1;\n    if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n    string0 = this.getAttributeNS(fullname.space, fullname.local);\n    string1 = value1 + \"\";\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n  };\n}\n\nexport default function(name, value) {\n  var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n  return this.attrTween(name, typeof value === \"function\"\n      ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n      : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n      : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n  var tween0, tween1;\n  return function() {\n    var schedule = set(this, id),\n        tween = schedule.tween;\n\n    // If this node shared tween with the previous node,\n    // just assign the updated shared tween and we\u2019re done!\n    // Otherwise, copy-on-write.\n    if (tween !== tween0) {\n      tween1 = tween0 = tween;\n      for (var i = 0, n = tween1.length; i < n; ++i) {\n        if (tween1[i].name === name) {\n          tween1 = tween1.slice();\n          tween1.splice(i, 1);\n          break;\n        }\n      }\n    }\n\n    schedule.tween = tween1;\n  };\n}\n\nfunction tweenFunction(id, name, value) {\n  var tween0, tween1;\n  if (typeof value !== \"function\") throw new Error;\n  return function() {\n    var schedule = set(this, id),\n        tween = schedule.tween;\n\n    // If this node shared tween with the previous node,\n    // just assign the updated shared tween and we\u2019re done!\n    // Otherwise, copy-on-write.\n    if (tween !== tween0) {\n      tween1 = (tween0 = tween).slice();\n      for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n        if (tween1[i].name === name) {\n          tween1[i] = t;\n          break;\n        }\n      }\n      if (i === n) tween1.push(t);\n    }\n\n    schedule.tween = tween1;\n  };\n}\n\nexport default function(name, value) {\n  var id = this._id;\n\n  name += \"\";\n\n  if (arguments.length < 2) {\n    var tween = get(this.node(), id).tween;\n    for (var i = 0, n = tween.length, t; i < n; ++i) {\n      if ((t = tween[i]).name === name) {\n        return t.value;\n      }\n    }\n    return null;\n  }\n\n  return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n  var id = transition._id;\n\n  transition.each(function() {\n    var schedule = set(this, id);\n    (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n  });\n\n  return function(node) {\n    return get(node, id).value[name];\n  };\n}\n", "import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n  var c;\n  return (typeof b === \"number\" ? interpolateNumber\n      : b instanceof color ? interpolateRgb\n      : (c = color(b)) ? (b = c, interpolateRgb)\n      : interpolateString)(a, b);\n}\n", "import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n  return function(t) {\n    this.setAttribute(name, i.call(this, t));\n  };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n  return function(t) {\n    this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n  };\n}\n\nfunction attrTweenNS(fullname, value) {\n  var t0, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n    return t0;\n  }\n  tween._value = value;\n  return tween;\n}\n\nfunction attrTween(name, value) {\n  var t0, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n    return t0;\n  }\n  tween._value = value;\n  return tween;\n}\n\nexport default function(name, value) {\n  var key = \"attr.\" + name;\n  if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n  if (value == null) return this.tween(key, null);\n  if (typeof value !== \"function\") throw new Error;\n  var fullname = namespace(name);\n  return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n", "import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n  return function() {\n    init(this, id).delay = +value.apply(this, arguments);\n  };\n}\n\nfunction delayConstant(id, value) {\n  return value = +value, function() {\n    init(this, id).delay = value;\n  };\n}\n\nexport default function(value) {\n  var id = this._id;\n\n  return arguments.length\n      ? this.each((typeof value === \"function\"\n          ? delayFunction\n          : delayConstant)(id, value))\n      : get(this.node(), id).delay;\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n  return function() {\n    set(this, id).duration = +value.apply(this, arguments);\n  };\n}\n\nfunction durationConstant(id, value) {\n  return value = +value, function() {\n    set(this, id).duration = value;\n  };\n}\n\nexport default function(value) {\n  var id = this._id;\n\n  return arguments.length\n      ? this.each((typeof value === \"function\"\n          ? durationFunction\n          : durationConstant)(id, value))\n      : get(this.node(), id).duration;\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n  if (typeof value !== \"function\") throw new Error;\n  return function() {\n    set(this, id).ease = value;\n  };\n}\n\nexport default function(value) {\n  var id = this._id;\n\n  return arguments.length\n      ? this.each(easeConstant(id, value))\n      : get(this.node(), id).ease;\n}\n", "import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (typeof v !== \"function\") throw new Error;\n    set(this, id).ease = v;\n  };\n}\n\nexport default function(value) {\n  if (typeof value !== \"function\") throw new Error;\n  return this.each(easeVarying(this._id, value));\n}\n", "import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n  if (typeof match !== \"function\") match = matcher(match);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n        subgroup.push(node);\n      }\n    }\n  }\n\n  return new Transition(subgroups, this._parents, this._name, this._id);\n}\n", "import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n  if (transition._id !== this._id) throw new Error;\n\n  for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group0[i] || group1[i]) {\n        merge[i] = node;\n      }\n    }\n  }\n\n  for (; j < m0; ++j) {\n    merges[j] = groups0[j];\n  }\n\n  return new Transition(merges, this._parents, this._name, this._id);\n}\n", "import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n  return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n    var i = t.indexOf(\".\");\n    if (i >= 0) t = t.slice(0, i);\n    return !t || t === \"start\";\n  });\n}\n\nfunction onFunction(id, name, listener) {\n  var on0, on1, sit = start(name) ? init : set;\n  return function() {\n    var schedule = sit(this, id),\n        on = schedule.on;\n\n    // If this node shared a dispatch with the previous node,\n    // just assign the updated shared dispatch and we\u2019re done!\n    // Otherwise, copy-on-write.\n    if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n    schedule.on = on1;\n  };\n}\n\nexport default function(name, listener) {\n  var id = this._id;\n\n  return arguments.length < 2\n      ? get(this.node(), id).on.on(name)\n      : this.each(onFunction(id, name, listener));\n}\n", "function removeFunction(id) {\n  return function() {\n    var parent = this.parentNode;\n    for (var i in this.__transition) if (+i !== id) return;\n    if (parent) parent.removeChild(this);\n  };\n}\n\nexport default function() {\n  return this.on(\"end.remove\", removeFunction(this._id));\n}\n", "import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n  var name = this._name,\n      id = this._id;\n\n  if (typeof select !== \"function\") select = selector(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n        if (\"__data__\" in node) subnode.__data__ = node.__data__;\n        subgroup[i] = subnode;\n        schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n      }\n    }\n  }\n\n  return new Transition(subgroups, this._parents, name, id);\n}\n", "import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n  var name = this._name,\n      id = this._id;\n\n  if (typeof select !== \"function\") select = selectorAll(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n          if (child = children[k]) {\n            schedule(child, name, id, k, children, inherit);\n          }\n        }\n        subgroups.push(children);\n        parents.push(node);\n      }\n    }\n  }\n\n  return new Transition(subgroups, parents, name, id);\n}\n", "import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n  return new Selection(this._groups, this._parents);\n}\n", "import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0 = style(this, name),\n        string1 = (this.style.removeProperty(name), style(this, name));\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, string10 = string1);\n  };\n}\n\nfunction styleRemove(name) {\n  return function() {\n    this.style.removeProperty(name);\n  };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n  var string00,\n      string1 = value1 + \"\",\n      interpolate0;\n  return function() {\n    var string0 = style(this, name);\n    return string0 === string1 ? null\n        : string0 === string00 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, value1);\n  };\n}\n\nfunction styleFunction(name, interpolate, value) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0 = style(this, name),\n        value1 = value(this),\n        string1 = value1 + \"\";\n    if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n  };\n}\n\nfunction styleMaybeRemove(id, name) {\n  var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n  return function() {\n    var schedule = set(this, id),\n        on = schedule.on,\n        listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n    // If this node shared a dispatch with the previous node,\n    // just assign the updated shared dispatch and we\u2019re done!\n    // Otherwise, copy-on-write.\n    if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n    schedule.on = on1;\n  };\n}\n\nexport default function(name, value, priority) {\n  var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n  return value == null ? this\n      .styleTween(name, styleNull(name, i))\n      .on(\"end.style.\" + name, styleRemove(name))\n    : typeof value === \"function\" ? this\n      .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n      .each(styleMaybeRemove(this._id, name))\n    : this\n      .styleTween(name, styleConstant(name, i, value), priority)\n      .on(\"end.style.\" + name, null);\n}\n", "function styleInterpolate(name, i, priority) {\n  return function(t) {\n    this.style.setProperty(name, i.call(this, t), priority);\n  };\n}\n\nfunction styleTween(name, value, priority) {\n  var t, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n    return t;\n  }\n  tween._value = value;\n  return tween;\n}\n\nexport default function(name, value, priority) {\n  var key = \"style.\" + (name += \"\");\n  if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n  if (value == null) return this.tween(key, null);\n  if (typeof value !== \"function\") throw new Error;\n  return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n", "import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n  return function() {\n    this.textContent = value;\n  };\n}\n\nfunction textFunction(value) {\n  return function() {\n    var value1 = value(this);\n    this.textContent = value1 == null ? \"\" : value1;\n  };\n}\n\nexport default function(value) {\n  return this.tween(\"text\", typeof value === \"function\"\n      ? textFunction(tweenValue(this, \"text\", value))\n      : textConstant(value == null ? \"\" : value + \"\"));\n}\n", "function textInterpolate(i) {\n  return function(t) {\n    this.textContent = i.call(this, t);\n  };\n}\n\nfunction textTween(value) {\n  var t0, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n    return t0;\n  }\n  tween._value = value;\n  return tween;\n}\n\nexport default function(value) {\n  var key = \"text\";\n  if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n  if (value == null) return this.tween(key, null);\n  if (typeof value !== \"function\") throw new Error;\n  return this.tween(key, textTween(value));\n}\n", "import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n  var name = this._name,\n      id0 = this._id,\n      id1 = newId();\n\n  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        var inherit = get(node, id0);\n        schedule(node, name, id1, i, group, {\n          time: inherit.time + inherit.delay + inherit.duration,\n          delay: 0,\n          duration: inherit.duration,\n          ease: inherit.ease\n        });\n      }\n    }\n  }\n\n  return new Transition(groups, this._parents, name, id1);\n}\n", "import {set} from \"./schedule.js\";\n\nexport default function() {\n  var on0, on1, that = this, id = that._id, size = that.size();\n  return new Promise(function(resolve, reject) {\n    var cancel = {value: reject},\n        end = {value: function() { if (--size === 0) resolve(); }};\n\n    that.each(function() {\n      var schedule = set(this, id),\n          on = schedule.on;\n\n      // If this node shared a dispatch with the previous node,\n      // just assign the updated shared dispatch and we\u2019re done!\n      // Otherwise, copy-on-write.\n      if (on !== on0) {\n        on1 = (on0 = on).copy();\n        on1._.cancel.push(cancel);\n        on1._.interrupt.push(cancel);\n        on1._.end.push(end);\n      }\n\n      schedule.on = on1;\n    });\n\n    // The selection was empty, resolve end immediately\n    if (size === 0) resolve();\n  });\n}\n", "export {\n  linear as easeLinear\n} from \"./linear.js\";\n\nexport {\n  quadInOut as easeQuad,\n  quadIn as easeQuadIn,\n  quadOut as easeQuadOut,\n  quadInOut as easeQuadInOut\n} from \"./quad.js\";\n\nexport {\n  cubicInOut as easeCubic,\n  cubicIn as easeCubicIn,\n  cubicOut as easeCubicOut,\n  cubicInOut as easeCubicInOut\n} from \"./cubic.js\";\n\nexport {\n  polyInOut as easePoly,\n  polyIn as easePolyIn,\n  polyOut as easePolyOut,\n  polyInOut as easePolyInOut\n} from \"./poly.js\";\n\nexport {\n  sinInOut as easeSin,\n  sinIn as easeSinIn,\n  sinOut as easeSinOut,\n  sinInOut as easeSinInOut\n} from \"./sin.js\";\n\nexport {\n  expInOut as easeExp,\n  expIn as easeExpIn,\n  expOut as easeExpOut,\n  expInOut as easeExpInOut\n} from \"./exp.js\";\n\nexport {\n  circleInOut as easeCircle,\n  circleIn as easeCircleIn,\n  circleOut as easeCircleOut,\n  circleInOut as easeCircleInOut\n} from \"./circle.js\";\n\nexport {\n  bounceOut as easeBounce,\n  bounceIn as easeBounceIn,\n  bounceOut as easeBounceOut,\n  bounceInOut as easeBounceInOut\n} from \"./bounce.js\";\n\nexport {\n  backInOut as easeBack,\n  backIn as easeBackIn,\n  backOut as easeBackOut,\n  backInOut as easeBackInOut\n} from \"./back.js\";\n\nexport {\n  elasticOut as easeElastic,\n  elasticIn as easeElasticIn,\n  elasticOut as easeElasticOut,\n  elasticInOut as easeElasticInOut\n} from \"./elastic.js\";\n", "export function cubicIn(t) {\n  return t * t * t;\n}\n\nexport function cubicOut(t) {\n  return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n  return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n", "export default x => () => x;\n", "export default function BrushEvent(type, {\n  sourceEvent,\n  target,\n  selection,\n  mode,\n  dispatch\n}) {\n  Object.defineProperties(this, {\n    type: {value: type, enumerable: true, configurable: true},\n    sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n    target: {value: target, enumerable: true, configurable: true},\n    selection: {value: selection, enumerable: true, configurable: true},\n    mode: {value: mode, enumerable: true, configurable: true},\n    _: {value: dispatch}\n  });\n}\n", "export function nopropagation(event) {\n  event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n  event.preventDefault();\n  event.stopImmediatePropagation();\n}\n", "export {default as zoom} from \"./zoom.js\";\nexport {default as zoomTransform, identity as zoomIdentity, Transform as ZoomTransform} from \"./transform.js\";\n", "import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n  return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n  var e = this;\n  if (e instanceof SVGElement) {\n    e = e.ownerSVGElement || e;\n    if (e.hasAttribute(\"viewBox\")) {\n      e = e.viewBox.baseVal;\n      return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n    }\n    return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n  }\n  return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n  return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n  return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n  return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n  var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n      dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n      dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n      dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n  return transform.translate(\n    dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n    dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n  );\n}\n\nexport default function() {\n  var filter = defaultFilter,\n      extent = defaultExtent,\n      constrain = defaultConstrain,\n      wheelDelta = defaultWheelDelta,\n      touchable = defaultTouchable,\n      scaleExtent = [0, Infinity],\n      translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n      duration = 250,\n      interpolate = interpolateZoom,\n      listeners = dispatch(\"start\", \"zoom\", \"end\"),\n      touchstarting,\n      touchfirst,\n      touchending,\n      touchDelay = 500,\n      wheelDelay = 150,\n      clickDistance2 = 0,\n      tapDistance = 10;\n\n  function zoom(selection) {\n    selection\n        .property(\"__zoom\", defaultTransform)\n        .on(\"wheel.zoom\", wheeled, {passive: false})\n        .on(\"mousedown.zoom\", mousedowned)\n        .on(\"dblclick.zoom\", dblclicked)\n      .filter(touchable)\n        .on(\"touchstart.zoom\", touchstarted)\n        .on(\"touchmove.zoom\", touchmoved)\n        .on(\"touchend.zoom touchcancel.zoom\", touchended)\n        .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n  }\n\n  zoom.transform = function(collection, transform, point, event) {\n    var selection = collection.selection ? collection.selection() : collection;\n    selection.property(\"__zoom\", defaultTransform);\n    if (collection !== selection) {\n      schedule(collection, transform, point, event);\n    } else {\n      selection.interrupt().each(function() {\n        gesture(this, arguments)\n          .event(event)\n          .start()\n          .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n          .end();\n      });\n    }\n  };\n\n  zoom.scaleBy = function(selection, k, p, event) {\n    zoom.scaleTo(selection, function() {\n      var k0 = this.__zoom.k,\n          k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n      return k0 * k1;\n    }, p, event);\n  };\n\n  zoom.scaleTo = function(selection, k, p, event) {\n    zoom.transform(selection, function() {\n      var e = extent.apply(this, arguments),\n          t0 = this.__zoom,\n          p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n          p1 = t0.invert(p0),\n          k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n      return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n    }, p, event);\n  };\n\n  zoom.translateBy = function(selection, x, y, event) {\n    zoom.transform(selection, function() {\n      return constrain(this.__zoom.translate(\n        typeof x === \"function\" ? x.apply(this, arguments) : x,\n        typeof y === \"function\" ? y.apply(this, arguments) : y\n      ), extent.apply(this, arguments), translateExtent);\n    }, null, event);\n  };\n\n  zoom.translateTo = function(selection, x, y, p, event) {\n    zoom.transform(selection, function() {\n      var e = extent.apply(this, arguments),\n          t = this.__zoom,\n          p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n      return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n        typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n        typeof y === \"function\" ? -y.apply(this, arguments) : -y\n      ), e, translateExtent);\n    }, p, event);\n  };\n\n  function scale(transform, k) {\n    k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n    return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n  }\n\n  function translate(transform, p0, p1) {\n    var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n    return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n  }\n\n  function centroid(extent) {\n    return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n  }\n\n  function schedule(transition, transform, point, event) {\n    transition\n        .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n        .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n        .tween(\"zoom\", function() {\n          var that = this,\n              args = arguments,\n              g = gesture(that, args).event(event),\n              e = extent.apply(that, args),\n              p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n              w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n              a = that.__zoom,\n              b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n              i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n          return function(t) {\n            if (t === 1) t = b; // Avoid rounding error on end.\n            else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n            g.zoom(null, t);\n          };\n        });\n  }\n\n  function gesture(that, args, clean) {\n    return (!clean && that.__zooming) || new Gesture(that, args);\n  }\n\n  function Gesture(that, args) {\n    this.that = that;\n    this.args = args;\n    this.active = 0;\n    this.sourceEvent = null;\n    this.extent = extent.apply(that, args);\n    this.taps = 0;\n  }\n\n  Gesture.prototype = {\n    event: function(event) {\n      if (event) this.sourceEvent = event;\n      return this;\n    },\n    start: function() {\n      if (++this.active === 1) {\n        this.that.__zooming = this;\n        this.emit(\"start\");\n      }\n      return this;\n    },\n    zoom: function(key, transform) {\n      if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n      if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n      if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n      this.that.__zoom = transform;\n      this.emit(\"zoom\");\n      return this;\n    },\n    end: function() {\n      if (--this.active === 0) {\n        delete this.that.__zooming;\n        this.emit(\"end\");\n      }\n      return this;\n    },\n    emit: function(type) {\n      var d = select(this.that).datum();\n      listeners.call(\n        type,\n        this.that,\n        new ZoomEvent(type, {\n          sourceEvent: this.sourceEvent,\n          target: zoom,\n          type,\n          transform: this.that.__zoom,\n          dispatch: listeners\n        }),\n        d\n      );\n    }\n  };\n\n  function wheeled(event, ...args) {\n    if (!filter.apply(this, arguments)) return;\n    var g = gesture(this, args).event(event),\n        t = this.__zoom,\n        k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n        p = pointer(event);\n\n    // If the mouse is in the same location as before, reuse it.\n    // If there were recent wheel events, reset the wheel idle timeout.\n    if (g.wheel) {\n      if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n        g.mouse[1] = t.invert(g.mouse[0] = p);\n      }\n      clearTimeout(g.wheel);\n    }\n\n    // If this wheel event won\u2019t trigger a transform change, ignore it.\n    else if (t.k === k) return;\n\n    // Otherwise, capture the mouse point and location at the start.\n    else {\n      g.mouse = [p, t.invert(p)];\n      interrupt(this);\n      g.start();\n    }\n\n    noevent(event);\n    g.wheel = setTimeout(wheelidled, wheelDelay);\n    g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n    function wheelidled() {\n      g.wheel = null;\n      g.end();\n    }\n  }\n\n  function mousedowned(event, ...args) {\n    if (touchending || !filter.apply(this, arguments)) return;\n    var currentTarget = event.currentTarget,\n        g = gesture(this, args, true).event(event),\n        v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n        p = pointer(event, currentTarget),\n        x0 = event.clientX,\n        y0 = event.clientY;\n\n    dragDisable(event.view);\n    nopropagation(event);\n    g.mouse = [p, this.__zoom.invert(p)];\n    interrupt(this);\n    g.start();\n\n    function mousemoved(event) {\n      noevent(event);\n      if (!g.moved) {\n        var dx = event.clientX - x0, dy = event.clientY - y0;\n        g.moved = dx * dx + dy * dy > clickDistance2;\n      }\n      g.event(event)\n       .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n    }\n\n    function mouseupped(event) {\n      v.on(\"mousemove.zoom mouseup.zoom\", null);\n      dragEnable(event.view, g.moved);\n      noevent(event);\n      g.event(event).end();\n    }\n  }\n\n  function dblclicked(event, ...args) {\n    if (!filter.apply(this, arguments)) return;\n    var t0 = this.__zoom,\n        p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n        p1 = t0.invert(p0),\n        k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n        t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n    noevent(event);\n    if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n    else select(this).call(zoom.transform, t1, p0, event);\n  }\n\n  function touchstarted(event, ...args) {\n    if (!filter.apply(this, arguments)) return;\n    var touches = event.touches,\n        n = touches.length,\n        g = gesture(this, args, event.changedTouches.length === n).event(event),\n        started, i, t, p;\n\n    nopropagation(event);\n    for (i = 0; i < n; ++i) {\n      t = touches[i], p = pointer(t, this);\n      p = [p, this.__zoom.invert(p), t.identifier];\n      if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n      else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n    }\n\n    if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n    if (started) {\n      if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n      interrupt(this);\n      g.start();\n    }\n  }\n\n  function touchmoved(event, ...args) {\n    if (!this.__zooming) return;\n    var g = gesture(this, args).event(event),\n        touches = event.changedTouches,\n        n = touches.length, i, t, p, l;\n\n    noevent(event);\n    for (i = 0; i < n; ++i) {\n      t = touches[i], p = pointer(t, this);\n      if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n      else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n    }\n    t = g.that.__zoom;\n    if (g.touch1) {\n      var p0 = g.touch0[0], l0 = g.touch0[1],\n          p1 = g.touch1[0], l1 = g.touch1[1],\n          dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n          dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n      t = scale(t, Math.sqrt(dp / dl));\n      p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n      l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n    }\n    else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n    else return;\n\n    g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n  }\n\n  function touchended(event, ...args) {\n    if (!this.__zooming) return;\n    var g = gesture(this, args).event(event),\n        touches = event.changedTouches,\n        n = touches.length, i, t;\n\n    nopropagation(event);\n    if (touchending) clearTimeout(touchending);\n    touchending = setTimeout(function() { touchending = null; }, touchDelay);\n    for (i = 0; i < n; ++i) {\n      t = touches[i];\n      if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n      else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n    }\n    if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n    if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n    else {\n      g.end();\n      // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n      if (g.taps === 2) {\n        t = pointer(t, this);\n        if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n          var p = select(this).on(\"dblclick.zoom\");\n          if (p) p.apply(this, arguments);\n        }\n      }\n    }\n  }\n\n  zoom.wheelDelta = function(_) {\n    return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n  };\n\n  zoom.filter = function(_) {\n    return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n  };\n\n  zoom.touchable = function(_) {\n    return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n  };\n\n  zoom.extent = function(_) {\n    return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n  };\n\n  zoom.scaleExtent = function(_) {\n    return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n  };\n\n  zoom.translateExtent = function(_) {\n    return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n  };\n\n  zoom.constrain = function(_) {\n    return arguments.length ? (constrain = _, zoom) : constrain;\n  };\n\n  zoom.duration = function(_) {\n    return arguments.length ? (duration = +_, zoom) : duration;\n  };\n\n  zoom.interpolate = function(_) {\n    return arguments.length ? (interpolate = _, zoom) : interpolate;\n  };\n\n  zoom.on = function() {\n    var value = listeners.on.apply(listeners, arguments);\n    return value === listeners ? zoom : value;\n  };\n\n  zoom.clickDistance = function(_) {\n    return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n  };\n\n  zoom.tapDistance = function(_) {\n    return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n  };\n\n  return zoom;\n}\n", "export {default as create} from \"./create.js\";\nexport {default as creator} from \"./creator.js\";\nexport {default as local} from \"./local.js\";\nexport {default as matcher} from \"./matcher.js\";\nexport {default as namespace} from \"./namespace.js\";\nexport {default as namespaces} from \"./namespaces.js\";\nexport {default as pointer} from \"./pointer.js\";\nexport {default as pointers} from \"./pointers.js\";\nexport {default as select} from \"./select.js\";\nexport {default as selectAll} from \"./selectAll.js\";\nexport {default as selection} from \"./selection/index.js\";\nexport {default as selector} from \"./selector.js\";\nexport {default as selectorAll} from \"./selectorAll.js\";\nexport {styleValue as style} from \"./selection/style.js\";\nexport {default as window} from \"./window.js\";\n", "import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n  return function() {\n    var document = this.ownerDocument,\n        uri = this.namespaceURI;\n    return uri === xhtml && document.documentElement.namespaceURI === xhtml\n        ? document.createElement(name)\n        : document.createElementNS(uri, name);\n  };\n}\n\nfunction creatorFixed(fullname) {\n  return function() {\n    return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n  };\n}\n\nexport default function(name) {\n  var fullname = namespace(name);\n  return (fullname.local\n      ? creatorFixed\n      : creatorInherit)(fullname);\n}\n", "import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n  var prefix = name += \"\", i = prefix.indexOf(\":\");\n  if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n  return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n", "export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n  svg: \"http://www.w3.org/2000/svg\",\n  xhtml: xhtml,\n  xlink: \"http://www.w3.org/1999/xlink\",\n  xml: \"http://www.w3.org/XML/1998/namespace\",\n  xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n", "import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n  this._groups = groups;\n  this._parents = parents;\n}\n\nfunction selection() {\n  return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n  return this;\n}\n\nSelection.prototype = selection.prototype = {\n  constructor: Selection,\n  select: selection_select,\n  selectAll: selection_selectAll,\n  selectChild: selection_selectChild,\n  selectChildren: selection_selectChildren,\n  filter: selection_filter,\n  data: selection_data,\n  enter: selection_enter,\n  exit: selection_exit,\n  join: selection_join,\n  merge: selection_merge,\n  selection: selection_selection,\n  order: selection_order,\n  sort: selection_sort,\n  call: selection_call,\n  nodes: selection_nodes,\n  node: selection_node,\n  size: selection_size,\n  empty: selection_empty,\n  each: selection_each,\n  attr: selection_attr,\n  style: selection_style,\n  property: selection_property,\n  classed: selection_classed,\n  text: selection_text,\n  html: selection_html,\n  raise: selection_raise,\n  lower: selection_lower,\n  append: selection_append,\n  insert: selection_insert,\n  remove: selection_remove,\n  clone: selection_clone,\n  datum: selection_datum,\n  on: selection_on,\n  dispatch: selection_dispatch,\n  [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n", "import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n  if (typeof select !== \"function\") select = selector(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n        if (\"__data__\" in node) subnode.__data__ = node.__data__;\n        subgroup[i] = subnode;\n      }\n    }\n  }\n\n  return new Selection(subgroups, this._parents);\n}\n", "function none() {}\n\nexport default function(selector) {\n  return selector == null ? none : function() {\n    return this.querySelector(selector);\n  };\n}\n", "import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n  return function() {\n    var group = select.apply(this, arguments);\n    return group == null ? [] : array(group);\n  };\n}\n\nexport default function(select) {\n  if (typeof select === \"function\") select = arrayAll(select);\n  else select = selectorAll(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        subgroups.push(select.call(node, node.__data__, i, group));\n        parents.push(node);\n      }\n    }\n  }\n\n  return new Selection(subgroups, parents);\n}\n", "export default function(x) {\n  return typeof x === \"object\" && \"length\" in x\n    ? x // Array, TypedArray, NodeList, array-like\n    : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n", "function empty() {\n  return [];\n}\n\nexport default function(selector) {\n  return selector == null ? empty : function() {\n    return this.querySelectorAll(selector);\n  };\n}\n", "import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n  return function() {\n    return find.call(this.children, match);\n  };\n}\n\nfunction childFirst() {\n  return this.firstElementChild;\n}\n\nexport default function(match) {\n  return this.select(match == null ? childFirst\n      : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n", "export default function(selector) {\n  return function() {\n    return this.matches(selector);\n  };\n}\n\nexport function childMatcher(selector) {\n  return function(node) {\n    return node.matches(selector);\n  };\n}\n\n", "import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n  return this.children;\n}\n\nfunction childrenFilter(match) {\n  return function() {\n    return filter.call(this.children, match);\n  };\n}\n\nexport default function(match) {\n  return this.selectAll(match == null ? children\n      : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n", "import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n  if (typeof match !== \"function\") match = matcher(match);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n        subgroup.push(node);\n      }\n    }\n  }\n\n  return new Selection(subgroups, this._parents);\n}\n", "import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport array from \"../array.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n  var i = 0,\n      node,\n      groupLength = group.length,\n      dataLength = data.length;\n\n  // Put any non-null nodes that fit into update.\n  // Put any null nodes into enter.\n  // Put any remaining data into enter.\n  for (; i < dataLength; ++i) {\n    if (node = group[i]) {\n      node.__data__ = data[i];\n      update[i] = node;\n    } else {\n      enter[i] = new EnterNode(parent, data[i]);\n    }\n  }\n\n  // Put any non-null nodes that don\u2019t fit into exit.\n  for (; i < groupLength; ++i) {\n    if (node = group[i]) {\n      exit[i] = node;\n    }\n  }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n  var i,\n      node,\n      nodeByKeyValue = new Map,\n      groupLength = group.length,\n      dataLength = data.length,\n      keyValues = new Array(groupLength),\n      keyValue;\n\n  // Compute the key for each node.\n  // If multiple nodes have the same key, the duplicates are added to exit.\n  for (i = 0; i < groupLength; ++i) {\n    if (node = group[i]) {\n      keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n      if (nodeByKeyValue.has(keyValue)) {\n        exit[i] = node;\n      } else {\n        nodeByKeyValue.set(keyValue, node);\n      }\n    }\n  }\n\n  // Compute the key for each datum.\n  // If there a node associated with this key, join and add it to update.\n  // If there is not (or the key is a duplicate), add it to enter.\n  for (i = 0; i < dataLength; ++i) {\n    keyValue = key.call(parent, data[i], i, data) + \"\";\n    if (node = nodeByKeyValue.get(keyValue)) {\n      update[i] = node;\n      node.__data__ = data[i];\n      nodeByKeyValue.delete(keyValue);\n    } else {\n      enter[i] = new EnterNode(parent, data[i]);\n    }\n  }\n\n  // Add any remaining nodes that were not bound to data to exit.\n  for (i = 0; i < groupLength; ++i) {\n    if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n      exit[i] = node;\n    }\n  }\n}\n\nfunction datum(node) {\n  return node.__data__;\n}\n\nexport default function(value, key) {\n  if (!arguments.length) return Array.from(this, datum);\n\n  var bind = key ? bindKey : bindIndex,\n      parents = this._parents,\n      groups = this._groups;\n\n  if (typeof value !== \"function\") value = constant(value);\n\n  for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n    var parent = parents[j],\n        group = groups[j],\n        groupLength = group.length,\n        data = array(value.call(parent, parent && parent.__data__, j, parents)),\n        dataLength = data.length,\n        enterGroup = enter[j] = new Array(dataLength),\n        updateGroup = update[j] = new Array(dataLength),\n        exitGroup = exit[j] = new Array(groupLength);\n\n    bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n    // Now connect the enter nodes to their following update node, such that\n    // appendChild can insert the materialized enter node before this node,\n    // rather than at the end of the parent node.\n    for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n      if (previous = enterGroup[i0]) {\n        if (i0 >= i1) i1 = i0 + 1;\n        while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n        previous._next = next || null;\n      }\n    }\n  }\n\n  update = new Selection(update, parents);\n  update._enter = enter;\n  update._exit = exit;\n  return update;\n}\n", "import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n  return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n  this.ownerDocument = parent.ownerDocument;\n  this.namespaceURI = parent.namespaceURI;\n  this._next = null;\n  this._parent = parent;\n  this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n  constructor: EnterNode,\n  appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n  insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n  querySelector: function(selector) { return this._parent.querySelector(selector); },\n  querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n", "export default function(update) {\n  return new Array(update.length);\n}\n", "export default function(x) {\n  return function() {\n    return x;\n  };\n}\n", "import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n  return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n", "export default function(onenter, onupdate, onexit) {\n  var enter = this.enter(), update = this, exit = this.exit();\n  enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n  if (onupdate != null) update = onupdate(update);\n  if (onexit == null) exit.remove(); else onexit(exit);\n  return enter && update ? enter.merge(update).order() : update;\n}\n", "import {Selection} from \"./index.js\";\n\nexport default function(selection) {\n  if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\n\n  for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group0[i] || group1[i]) {\n        merge[i] = node;\n      }\n    }\n  }\n\n  for (; j < m0; ++j) {\n    merges[j] = groups0[j];\n  }\n\n  return new Selection(merges, this._parents);\n}\n", "export default function() {\n\n  for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n    for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n      if (node = group[i]) {\n        if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n        next = node;\n      }\n    }\n  }\n\n  return this;\n}\n", "import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n  if (!compare) compare = ascending;\n\n  function compareNode(a, b) {\n    return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n  }\n\n  for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        sortgroup[i] = node;\n      }\n    }\n    sortgroup.sort(compareNode);\n  }\n\n  return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n  return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n", "export default function() {\n  var callback = arguments[0];\n  arguments[0] = this;\n  callback.apply(null, arguments);\n  return this;\n}\n", "export default function() {\n  return Array.from(this);\n}\n", "export default function() {\n\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n      var node = group[i];\n      if (node) return node;\n    }\n  }\n\n  return null;\n}\n", "export default function() {\n  let size = 0;\n  for (const node of this) ++size; // eslint-disable-line no-unused-vars\n  return size;\n}\n", "export default function() {\n  return !this.node();\n}\n", "export default function(callback) {\n\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n      if (node = group[i]) callback.call(node, node.__data__, i, group);\n    }\n  }\n\n  return this;\n}\n", "import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n  return function() {\n    this.removeAttribute(name);\n  };\n}\n\nfunction attrRemoveNS(fullname) {\n  return function() {\n    this.removeAttributeNS(fullname.space, fullname.local);\n  };\n}\n\nfunction attrConstant(name, value) {\n  return function() {\n    this.setAttribute(name, value);\n  };\n}\n\nfunction attrConstantNS(fullname, value) {\n  return function() {\n    this.setAttributeNS(fullname.space, fullname.local, value);\n  };\n}\n\nfunction attrFunction(name, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.removeAttribute(name);\n    else this.setAttribute(name, v);\n  };\n}\n\nfunction attrFunctionNS(fullname, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n    else this.setAttributeNS(fullname.space, fullname.local, v);\n  };\n}\n\nexport default function(name, value) {\n  var fullname = namespace(name);\n\n  if (arguments.length < 2) {\n    var node = this.node();\n    return fullname.local\n        ? node.getAttributeNS(fullname.space, fullname.local)\n        : node.getAttribute(fullname);\n  }\n\n  return this.each((value == null\n      ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n      ? (fullname.local ? attrFunctionNS : attrFunction)\n      : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n", "import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n  return function() {\n    this.style.removeProperty(name);\n  };\n}\n\nfunction styleConstant(name, value, priority) {\n  return function() {\n    this.style.setProperty(name, value, priority);\n  };\n}\n\nfunction styleFunction(name, value, priority) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) this.style.removeProperty(name);\n    else this.style.setProperty(name, v, priority);\n  };\n}\n\nexport default function(name, value, priority) {\n  return arguments.length > 1\n      ? this.each((value == null\n            ? styleRemove : typeof value === \"function\"\n            ? styleFunction\n            : styleConstant)(name, value, priority == null ? \"\" : priority))\n      : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n  return node.style.getPropertyValue(name)\n      || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n", "export default function(node) {\n  return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n      || (node.document && node) // node is a Window\n      || node.defaultView; // node is a Document\n}\n", "function propertyRemove(name) {\n  return function() {\n    delete this[name];\n  };\n}\n\nfunction propertyConstant(name, value) {\n  return function() {\n    this[name] = value;\n  };\n}\n\nfunction propertyFunction(name, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (v == null) delete this[name];\n    else this[name] = v;\n  };\n}\n\nexport default function(name, value) {\n  return arguments.length > 1\n      ? this.each((value == null\n          ? propertyRemove : typeof value === \"function\"\n          ? propertyFunction\n          : propertyConstant)(name, value))\n      : this.node()[name];\n}\n", "function classArray(string) {\n  return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n  return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n  this._node = node;\n  this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n  add: function(name) {\n    var i = this._names.indexOf(name);\n    if (i < 0) {\n      this._names.push(name);\n      this._node.setAttribute(\"class\", this._names.join(\" \"));\n    }\n  },\n  remove: function(name) {\n    var i = this._names.indexOf(name);\n    if (i >= 0) {\n      this._names.splice(i, 1);\n      this._node.setAttribute(\"class\", this._names.join(\" \"));\n    }\n  },\n  contains: function(name) {\n    return this._names.indexOf(name) >= 0;\n  }\n};\n\nfunction classedAdd(node, names) {\n  var list = classList(node), i = -1, n = names.length;\n  while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n  var list = classList(node), i = -1, n = names.length;\n  while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n  return function() {\n    classedAdd(this, names);\n  };\n}\n\nfunction classedFalse(names) {\n  return function() {\n    classedRemove(this, names);\n  };\n}\n\nfunction classedFunction(names, value) {\n  return function() {\n    (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n  };\n}\n\nexport default function(name, value) {\n  var names = classArray(name + \"\");\n\n  if (arguments.length < 2) {\n    var list = classList(this.node()), i = -1, n = names.length;\n    while (++i < n) if (!list.contains(names[i])) return false;\n    return true;\n  }\n\n  return this.each((typeof value === \"function\"\n      ? classedFunction : value\n      ? classedTrue\n      : classedFalse)(names, value));\n}\n", "function textRemove() {\n  this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n  return function() {\n    this.textContent = value;\n  };\n}\n\nfunction textFunction(value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    this.textContent = v == null ? \"\" : v;\n  };\n}\n\nexport default function(value) {\n  return arguments.length\n      ? this.each(value == null\n          ? textRemove : (typeof value === \"function\"\n          ? textFunction\n          : textConstant)(value))\n      : this.node().textContent;\n}\n", "function htmlRemove() {\n  this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n  return function() {\n    this.innerHTML = value;\n  };\n}\n\nfunction htmlFunction(value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    this.innerHTML = v == null ? \"\" : v;\n  };\n}\n\nexport default function(value) {\n  return arguments.length\n      ? this.each(value == null\n          ? htmlRemove : (typeof value === \"function\"\n          ? htmlFunction\n          : htmlConstant)(value))\n      : this.node().innerHTML;\n}\n", "function raise() {\n  if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n  return this.each(raise);\n}\n", "function lower() {\n  if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n  return this.each(lower);\n}\n", "import creator from \"../creator.js\";\n\nexport default function(name) {\n  var create = typeof name === \"function\" ? name : creator(name);\n  return this.select(function() {\n    return this.appendChild(create.apply(this, arguments));\n  });\n}\n", "import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n  return null;\n}\n\nexport default function(name, before) {\n  var create = typeof name === \"function\" ? name : creator(name),\n      select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n  return this.select(function() {\n    return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n  });\n}\n", "function remove() {\n  var parent = this.parentNode;\n  if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n  return this.each(remove);\n}\n", "function selection_cloneShallow() {\n  var clone = this.cloneNode(false), parent = this.parentNode;\n  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n  var clone = this.cloneNode(true), parent = this.parentNode;\n  return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n  return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n", "export default function(value) {\n  return arguments.length\n      ? this.property(\"__data__\", value)\n      : this.node().__data__;\n}\n", "function contextListener(listener) {\n  return function(event) {\n    listener.call(this, event, this.__data__);\n  };\n}\n\nfunction parseTypenames(typenames) {\n  return typenames.trim().split(/^|\\s+/).map(function(t) {\n    var name = \"\", i = t.indexOf(\".\");\n    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n    return {type: t, name: name};\n  });\n}\n\nfunction onRemove(typename) {\n  return function() {\n    var on = this.__on;\n    if (!on) return;\n    for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n      if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n        this.removeEventListener(o.type, o.listener, o.options);\n      } else {\n        on[++i] = o;\n      }\n    }\n    if (++i) on.length = i;\n    else delete this.__on;\n  };\n}\n\nfunction onAdd(typename, value, options) {\n  return function() {\n    var on = this.__on, o, listener = contextListener(value);\n    if (on) for (var j = 0, m = on.length; j < m; ++j) {\n      if ((o = on[j]).type === typename.type && o.name === typename.name) {\n        this.removeEventListener(o.type, o.listener, o.options);\n        this.addEventListener(o.type, o.listener = listener, o.options = options);\n        o.value = value;\n        return;\n      }\n    }\n    this.addEventListener(typename.type, listener, options);\n    o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n    if (!on) this.__on = [o];\n    else on.push(o);\n  };\n}\n\nexport default function(typename, value, options) {\n  var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n  if (arguments.length < 2) {\n    var on = this.node().__on;\n    if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n      for (i = 0, o = on[j]; i < n; ++i) {\n        if ((t = typenames[i]).type === o.type && t.name === o.name) {\n          return o.value;\n        }\n      }\n    }\n    return;\n  }\n\n  on = value ? onAdd : onRemove;\n  for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n  return this;\n}\n", "import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n  var window = defaultView(node),\n      event = window.CustomEvent;\n\n  if (typeof event === \"function\") {\n    event = new event(type, params);\n  } else {\n    event = window.document.createEvent(\"Event\");\n    if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n    else event.initEvent(type, false, false);\n  }\n\n  node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n  return function() {\n    return dispatchEvent(this, type, params);\n  };\n}\n\nfunction dispatchFunction(type, params) {\n  return function() {\n    return dispatchEvent(this, type, params.apply(this, arguments));\n  };\n}\n\nexport default function(type, params) {\n  return this.each((typeof params === \"function\"\n      ? dispatchFunction\n      : dispatchConstant)(type, params));\n}\n", "export default function*() {\n  for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n    for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n      if (node = group[i]) yield node;\n    }\n  }\n}\n", "import \"./selection/index.js\";\nexport {default as transition} from \"./transition/index.js\";\nexport {default as active} from \"./active.js\";\nexport {default as interrupt} from \"./interrupt.js\";\n", "import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n", "import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n  return this.each(function() {\n    interrupt(this, name);\n  });\n}\n", "import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n  var schedules = node.__transition,\n      schedule,\n      active,\n      empty = true,\n      i;\n\n  if (!schedules) return;\n\n  name = name == null ? null : name + \"\";\n\n  for (i in schedules) {\n    if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n    active = schedule.state > STARTING && schedule.state < ENDING;\n    schedule.state = ENDED;\n    schedule.timer.stop();\n    schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n    delete schedules[i];\n  }\n\n  if (empty) delete node.__transition;\n}\n", "import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n  var schedules = node.__transition;\n  if (!schedules) node.__transition = {};\n  else if (id in schedules) return;\n  create(node, id, {\n    name: name,\n    index: index, // For context during callback.\n    group: group, // For context during callback.\n    on: emptyOn,\n    tween: emptyTween,\n    time: timing.time,\n    delay: timing.delay,\n    duration: timing.duration,\n    ease: timing.ease,\n    timer: null,\n    state: CREATED\n  });\n}\n\nexport function init(node, id) {\n  var schedule = get(node, id);\n  if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n  return schedule;\n}\n\nexport function set(node, id) {\n  var schedule = get(node, id);\n  if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n  return schedule;\n}\n\nexport function get(node, id) {\n  var schedule = node.__transition;\n  if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n  return schedule;\n}\n\nfunction create(node, id, self) {\n  var schedules = node.__transition,\n      tween;\n\n  // Initialize the self timer when the transition is created.\n  // Note the actual delay is not known until the first callback!\n  schedules[id] = self;\n  self.timer = timer(schedule, 0, self.time);\n\n  function schedule(elapsed) {\n    self.state = SCHEDULED;\n    self.timer.restart(start, self.delay, self.time);\n\n    // If the elapsed delay is less than our first sleep, start immediately.\n    if (self.delay <= elapsed) start(elapsed - self.delay);\n  }\n\n  function start(elapsed) {\n    var i, j, n, o;\n\n    // If the state is not SCHEDULED, then we previously errored on start.\n    if (self.state !== SCHEDULED) return stop();\n\n    for (i in schedules) {\n      o = schedules[i];\n      if (o.name !== self.name) continue;\n\n      // While this element already has a starting transition during this frame,\n      // defer starting an interrupting transition until that transition has a\n      // chance to tick (and possibly end); see d3/d3-transition#54!\n      if (o.state === STARTED) return timeout(start);\n\n      // Interrupt the active transition, if any.\n      if (o.state === RUNNING) {\n        o.state = ENDED;\n        o.timer.stop();\n        o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n        delete schedules[i];\n      }\n\n      // Cancel any pre-empted transitions.\n      else if (+i < id) {\n        o.state = ENDED;\n        o.timer.stop();\n        o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n        delete schedules[i];\n      }\n    }\n\n    // Defer the first tick to end of the current frame; see d3/d3#1576.\n    // Note the transition may be canceled after start and before the first tick!\n    // Note this must be scheduled before the start event; see d3/d3-transition#16!\n    // Assuming this is successful, subsequent callbacks go straight to tick.\n    timeout(function() {\n      if (self.state === STARTED) {\n        self.state = RUNNING;\n        self.timer.restart(tick, self.delay, self.time);\n        tick(elapsed);\n      }\n    });\n\n    // Dispatch the start event.\n    // Note this must be done before the tween are initialized.\n    self.state = STARTING;\n    self.on.call(\"start\", node, node.__data__, self.index, self.group);\n    if (self.state !== STARTING) return; // interrupted\n    self.state = STARTED;\n\n    // Initialize the tween, deleting null tween.\n    tween = new Array(n = self.tween.length);\n    for (i = 0, j = -1; i < n; ++i) {\n      if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n        tween[++j] = o;\n      }\n    }\n    tween.length = j + 1;\n  }\n\n  function tick(elapsed) {\n    var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n        i = -1,\n        n = tween.length;\n\n    while (++i < n) {\n      tween[i].call(node, t);\n    }\n\n    // Dispatch the end event.\n    if (self.state === ENDING) {\n      self.on.call(\"end\", node, node.__data__, self.index, self.group);\n      stop();\n    }\n  }\n\n  function stop() {\n    self.state = ENDED;\n    self.timer.stop();\n    delete schedules[id];\n    for (var i in schedules) return; // eslint-disable-line no-unused-vars\n    delete node.__transition;\n  }\n}\n", "export {default as dispatch} from \"./dispatch.js\";\n", "var noop = {value: () => {}};\n\nfunction dispatch() {\n  for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n    if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n    _[t] = [];\n  }\n  return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n  this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n  return typenames.trim().split(/^|\\s+/).map(function(t) {\n    var name = \"\", i = t.indexOf(\".\");\n    if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n    if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n    return {type: t, name: name};\n  });\n}\n\nDispatch.prototype = dispatch.prototype = {\n  constructor: Dispatch,\n  on: function(typename, callback) {\n    var _ = this._,\n        T = parseTypenames(typename + \"\", _),\n        t,\n        i = -1,\n        n = T.length;\n\n    // If no callback was specified, return the callback of the given type and name.\n    if (arguments.length < 2) {\n      while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n      return;\n    }\n\n    // If a type was specified, set the callback for the given type and name.\n    // Otherwise, if a null callback was specified, remove callbacks of the given name.\n    if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n    while (++i < n) {\n      if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n      else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n    }\n\n    return this;\n  },\n  copy: function() {\n    var copy = {}, _ = this._;\n    for (var t in _) copy[t] = _[t].slice();\n    return new Dispatch(copy);\n  },\n  call: function(type, that) {\n    if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n    if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n    for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n  },\n  apply: function(type, that, args) {\n    if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n    for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n  }\n};\n\nfunction get(type, name) {\n  for (var i = 0, n = type.length, c; i < n; ++i) {\n    if ((c = type[i]).name === name) {\n      return c.value;\n    }\n  }\n}\n\nfunction set(type, name, callback) {\n  for (var i = 0, n = type.length; i < n; ++i) {\n    if (type[i].name === name) {\n      type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n      break;\n    }\n  }\n  if (callback != null) type.push({name: name, value: callback});\n  return type;\n}\n\nexport default dispatch;\n", "export {\n  now,\n  timer,\n  timerFlush\n} from \"./timer.js\";\n\nexport {\n  default as timeout\n} from \"./timeout.js\";\n\nexport {\n  default as interval\n} from \"./interval.js\";\n", "var frame = 0, // is an animation frame pending?\n    timeout = 0, // is a timeout pending?\n    interval = 0, // are any timers active?\n    pokeDelay = 1000, // how frequently we check for clock skew\n    taskHead,\n    taskTail,\n    clockLast = 0,\n    clockNow = 0,\n    clockSkew = 0,\n    clock = typeof performance === \"object\" && performance.now ? performance : Date,\n    setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n  return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n  clockNow = 0;\n}\n\nexport function Timer() {\n  this._call =\n  this._time =\n  this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n  constructor: Timer,\n  restart: function(callback, delay, time) {\n    if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n    time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n    if (!this._next && taskTail !== this) {\n      if (taskTail) taskTail._next = this;\n      else taskHead = this;\n      taskTail = this;\n    }\n    this._call = callback;\n    this._time = time;\n    sleep();\n  },\n  stop: function() {\n    if (this._call) {\n      this._call = null;\n      this._time = Infinity;\n      sleep();\n    }\n  }\n};\n\nexport function timer(callback, delay, time) {\n  var t = new Timer;\n  t.restart(callback, delay, time);\n  return t;\n}\n\nexport function timerFlush() {\n  now(); // Get the current time, if not already set.\n  ++frame; // Pretend we\u2019ve set an alarm, if we haven\u2019t already.\n  var t = taskHead, e;\n  while (t) {\n    if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n    t = t._next;\n  }\n  --frame;\n}\n\nfunction wake() {\n  clockNow = (clockLast = clock.now()) + clockSkew;\n  frame = timeout = 0;\n  try {\n    timerFlush();\n  } finally {\n    frame = 0;\n    nap();\n    clockNow = 0;\n  }\n}\n\nfunction poke() {\n  var now = clock.now(), delay = now - clockLast;\n  if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n  var t0, t1 = taskHead, t2, time = Infinity;\n  while (t1) {\n    if (t1._call) {\n      if (time > t1._time) time = t1._time;\n      t0 = t1, t1 = t1._next;\n    } else {\n      t2 = t1._next, t1._next = null;\n      t1 = t0 ? t0._next = t2 : taskHead = t2;\n    }\n  }\n  taskTail = t0;\n  sleep(time);\n}\n\nfunction sleep(time) {\n  if (frame) return; // Soonest alarm already set, or will be.\n  if (timeout) timeout = clearTimeout(timeout);\n  var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n  if (delay > 24) {\n    if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n    if (interval) interval = clearInterval(interval);\n  } else {\n    if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n    frame = 1, setFrame(wake);\n  }\n}\n", "import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n  var t = new Timer;\n  delay = delay == null ? 0 : +delay;\n  t.restart(elapsed => {\n    t.stop();\n    callback(elapsed + delay);\n  }, delay, time);\n  return t;\n}\n", "import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n  time: null, // Set on use.\n  delay: 0,\n  duration: 250,\n  ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n  var timing;\n  while (!(timing = node.__transition) || !(timing = timing[id])) {\n    if (!(node = node.parentNode)) {\n      throw new Error(`transition ${id} not found`);\n    }\n  }\n  return timing;\n}\n\nexport default function(name) {\n  var id,\n      timing;\n\n  if (name instanceof Transition) {\n    id = name._id, name = name._name;\n  } else {\n    id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n  }\n\n  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        schedule(node, name, id, i, group, timing || inherit(node, id));\n      }\n    }\n  }\n\n  return new Transition(groups, this._parents, name, id);\n}\n", "import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n  this._groups = groups;\n  this._parents = parents;\n  this._name = name;\n  this._id = id;\n}\n\nexport default function transition(name) {\n  return selection().transition(name);\n}\n\nexport function newId() {\n  return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n  constructor: Transition,\n  select: transition_select,\n  selectAll: transition_selectAll,\n  filter: transition_filter,\n  merge: transition_merge,\n  selection: transition_selection,\n  transition: transition_transition,\n  call: selection_prototype.call,\n  nodes: selection_prototype.nodes,\n  node: selection_prototype.node,\n  size: selection_prototype.size,\n  empty: selection_prototype.empty,\n  each: selection_prototype.each,\n  on: transition_on,\n  attr: transition_attr,\n  attrTween: transition_attrTween,\n  style: transition_style,\n  styleTween: transition_styleTween,\n  text: transition_text,\n  textTween: transition_textTween,\n  remove: transition_remove,\n  tween: transition_tween,\n  delay: transition_delay,\n  duration: transition_duration,\n  ease: transition_ease,\n  easeVarying: transition_easeVarying,\n  end: transition_end,\n  [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n", "import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n  return function() {\n    this.removeAttribute(name);\n  };\n}\n\nfunction attrRemoveNS(fullname) {\n  return function() {\n    this.removeAttributeNS(fullname.space, fullname.local);\n  };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n  var string00,\n      string1 = value1 + \"\",\n      interpolate0;\n  return function() {\n    var string0 = this.getAttribute(name);\n    return string0 === string1 ? null\n        : string0 === string00 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, value1);\n  };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n  var string00,\n      string1 = value1 + \"\",\n      interpolate0;\n  return function() {\n    var string0 = this.getAttributeNS(fullname.space, fullname.local);\n    return string0 === string1 ? null\n        : string0 === string00 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, value1);\n  };\n}\n\nfunction attrFunction(name, interpolate, value) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0, value1 = value(this), string1;\n    if (value1 == null) return void this.removeAttribute(name);\n    string0 = this.getAttribute(name);\n    string1 = value1 + \"\";\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n  };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0, value1 = value(this), string1;\n    if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n    string0 = this.getAttributeNS(fullname.space, fullname.local);\n    string1 = value1 + \"\";\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n  };\n}\n\nexport default function(name, value) {\n  var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n  return this.attrTween(name, typeof value === \"function\"\n      ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n      : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n      : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n", "export {default as interpolate} from \"./value.js\";\nexport {default as interpolateArray} from \"./array.js\";\nexport {default as interpolateBasis} from \"./basis.js\";\nexport {default as interpolateBasisClosed} from \"./basisClosed.js\";\nexport {default as interpolateDate} from \"./date.js\";\nexport {default as interpolateDiscrete} from \"./discrete.js\";\nexport {default as interpolateHue} from \"./hue.js\";\nexport {default as interpolateNumber} from \"./number.js\";\nexport {default as interpolateNumberArray} from \"./numberArray.js\";\nexport {default as interpolateObject} from \"./object.js\";\nexport {default as interpolateRound} from \"./round.js\";\nexport {default as interpolateString} from \"./string.js\";\nexport {interpolateTransformCss, interpolateTransformSvg} from \"./transform/index.js\";\nexport {default as interpolateZoom} from \"./zoom.js\";\nexport {default as interpolateRgb, rgbBasis as interpolateRgbBasis, rgbBasisClosed as interpolateRgbBasisClosed} from \"./rgb.js\";\nexport {default as interpolateHsl, hslLong as interpolateHslLong} from \"./hsl.js\";\nexport {default as interpolateLab} from \"./lab.js\";\nexport {default as interpolateHcl, hclLong as interpolateHclLong} from \"./hcl.js\";\nexport {default as interpolateCubehelix, cubehelixLong as interpolateCubehelixLong} from \"./cubehelix.js\";\nexport {default as piecewise} from \"./piecewise.js\";\nexport {default as quantize} from \"./quantize.js\";\n", "export {default as color, rgb, hsl} from \"./color.js\";\nexport {default as lab, hcl, lch, gray} from \"./lab.js\";\nexport {default as cubehelix} from \"./cubehelix.js\";\n", "import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n    reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n    reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n    reHex = /^#([0-9a-f]{3,8})$/,\n    reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n    reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n    reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n    reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n    reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n    reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n  aliceblue: 0xf0f8ff,\n  antiquewhite: 0xfaebd7,\n  aqua: 0x00ffff,\n  aquamarine: 0x7fffd4,\n  azure: 0xf0ffff,\n  beige: 0xf5f5dc,\n  bisque: 0xffe4c4,\n  black: 0x000000,\n  blanchedalmond: 0xffebcd,\n  blue: 0x0000ff,\n  blueviolet: 0x8a2be2,\n  brown: 0xa52a2a,\n  burlywood: 0xdeb887,\n  cadetblue: 0x5f9ea0,\n  chartreuse: 0x7fff00,\n  chocolate: 0xd2691e,\n  coral: 0xff7f50,\n  cornflowerblue: 0x6495ed,\n  cornsilk: 0xfff8dc,\n  crimson: 0xdc143c,\n  cyan: 0x00ffff,\n  darkblue: 0x00008b,\n  darkcyan: 0x008b8b,\n  darkgoldenrod: 0xb8860b,\n  darkgray: 0xa9a9a9,\n  darkgreen: 0x006400,\n  darkgrey: 0xa9a9a9,\n  darkkhaki: 0xbdb76b,\n  darkmagenta: 0x8b008b,\n  darkolivegreen: 0x556b2f,\n  darkorange: 0xff8c00,\n  darkorchid: 0x9932cc,\n  darkred: 0x8b0000,\n  darksalmon: 0xe9967a,\n  darkseagreen: 0x8fbc8f,\n  darkslateblue: 0x483d8b,\n  darkslategray: 0x2f4f4f,\n  darkslategrey: 0x2f4f4f,\n  darkturquoise: 0x00ced1,\n  darkviolet: 0x9400d3,\n  deeppink: 0xff1493,\n  deepskyblue: 0x00bfff,\n  dimgray: 0x696969,\n  dimgrey: 0x696969,\n  dodgerblue: 0x1e90ff,\n  firebrick: 0xb22222,\n  floralwhite: 0xfffaf0,\n  forestgreen: 0x228b22,\n  fuchsia: 0xff00ff,\n  gainsboro: 0xdcdcdc,\n  ghostwhite: 0xf8f8ff,\n  gold: 0xffd700,\n  goldenrod: 0xdaa520,\n  gray: 0x808080,\n  green: 0x008000,\n  greenyellow: 0xadff2f,\n  grey: 0x808080,\n  honeydew: 0xf0fff0,\n  hotpink: 0xff69b4,\n  indianred: 0xcd5c5c,\n  indigo: 0x4b0082,\n  ivory: 0xfffff0,\n  khaki: 0xf0e68c,\n  lavender: 0xe6e6fa,\n  lavenderblush: 0xfff0f5,\n  lawngreen: 0x7cfc00,\n  lemonchiffon: 0xfffacd,\n  lightblue: 0xadd8e6,\n  lightcoral: 0xf08080,\n  lightcyan: 0xe0ffff,\n  lightgoldenrodyellow: 0xfafad2,\n  lightgray: 0xd3d3d3,\n  lightgreen: 0x90ee90,\n  lightgrey: 0xd3d3d3,\n  lightpink: 0xffb6c1,\n  lightsalmon: 0xffa07a,\n  lightseagreen: 0x20b2aa,\n  lightskyblue: 0x87cefa,\n  lightslategray: 0x778899,\n  lightslategrey: 0x778899,\n  lightsteelblue: 0xb0c4de,\n  lightyellow: 0xffffe0,\n  lime: 0x00ff00,\n  limegreen: 0x32cd32,\n  linen: 0xfaf0e6,\n  magenta: 0xff00ff,\n  maroon: 0x800000,\n  mediumaquamarine: 0x66cdaa,\n  mediumblue: 0x0000cd,\n  mediumorchid: 0xba55d3,\n  mediumpurple: 0x9370db,\n  mediumseagreen: 0x3cb371,\n  mediumslateblue: 0x7b68ee,\n  mediumspringgreen: 0x00fa9a,\n  mediumturquoise: 0x48d1cc,\n  mediumvioletred: 0xc71585,\n  midnightblue: 0x191970,\n  mintcream: 0xf5fffa,\n  mistyrose: 0xffe4e1,\n  moccasin: 0xffe4b5,\n  navajowhite: 0xffdead,\n  navy: 0x000080,\n  oldlace: 0xfdf5e6,\n  olive: 0x808000,\n  olivedrab: 0x6b8e23,\n  orange: 0xffa500,\n  orangered: 0xff4500,\n  orchid: 0xda70d6,\n  palegoldenrod: 0xeee8aa,\n  palegreen: 0x98fb98,\n  paleturquoise: 0xafeeee,\n  palevioletred: 0xdb7093,\n  papayawhip: 0xffefd5,\n  peachpuff: 0xffdab9,\n  peru: 0xcd853f,\n  pink: 0xffc0cb,\n  plum: 0xdda0dd,\n  powderblue: 0xb0e0e6,\n  purple: 0x800080,\n  rebeccapurple: 0x663399,\n  red: 0xff0000,\n  rosybrown: 0xbc8f8f,\n  royalblue: 0x4169e1,\n  saddlebrown: 0x8b4513,\n  salmon: 0xfa8072,\n  sandybrown: 0xf4a460,\n  seagreen: 0x2e8b57,\n  seashell: 0xfff5ee,\n  sienna: 0xa0522d,\n  silver: 0xc0c0c0,\n  skyblue: 0x87ceeb,\n  slateblue: 0x6a5acd,\n  slategray: 0x708090,\n  slategrey: 0x708090,\n  snow: 0xfffafa,\n  springgreen: 0x00ff7f,\n  steelblue: 0x4682b4,\n  tan: 0xd2b48c,\n  teal: 0x008080,\n  thistle: 0xd8bfd8,\n  tomato: 0xff6347,\n  turquoise: 0x40e0d0,\n  violet: 0xee82ee,\n  wheat: 0xf5deb3,\n  white: 0xffffff,\n  whitesmoke: 0xf5f5f5,\n  yellow: 0xffff00,\n  yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n  copy: function(channels) {\n    return Object.assign(new this.constructor, this, channels);\n  },\n  displayable: function() {\n    return this.rgb().displayable();\n  },\n  hex: color_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: color_formatHex,\n  formatHsl: color_formatHsl,\n  formatRgb: color_formatRgb,\n  toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n  return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n  return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n  return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n  var m, l;\n  format = (format + \"\").trim().toLowerCase();\n  return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n      : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n      : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n      : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n      : null) // invalid hex\n      : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n      : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n      : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n      : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n      : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n      : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n      : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n      : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n      : null;\n}\n\nfunction rgbn(n) {\n  return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n  if (a <= 0) r = g = b = NaN;\n  return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Rgb;\n  o = o.rgb();\n  return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n  return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n  this.r = +r;\n  this.g = +g;\n  this.b = +b;\n  this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n  brighter: function(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  darker: function(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n  },\n  rgb: function() {\n    return this;\n  },\n  displayable: function() {\n    return (-0.5 <= this.r && this.r < 255.5)\n        && (-0.5 <= this.g && this.g < 255.5)\n        && (-0.5 <= this.b && this.b < 255.5)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n  formatHex: rgb_formatHex,\n  formatRgb: rgb_formatRgb,\n  toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n  return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n  var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n  return (a === 1 ? \"rgb(\" : \"rgba(\")\n      + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n      + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n      + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n      + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n  value = Math.max(0, Math.min(255, Math.round(value) || 0));\n  return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n  if (a <= 0) h = s = l = NaN;\n  else if (l <= 0 || l >= 1) h = s = NaN;\n  else if (s <= 0) h = NaN;\n  return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n  if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n  if (!(o instanceof Color)) o = color(o);\n  if (!o) return new Hsl;\n  if (o instanceof Hsl) return o;\n  o = o.rgb();\n  var r = o.r / 255,\n      g = o.g / 255,\n      b = o.b / 255,\n      min = Math.min(r, g, b),\n      max = Math.max(r, g, b),\n      h = NaN,\n      s = max - min,\n      l = (max + min) / 2;\n  if (s) {\n    if (r === max) h = (g - b) / s + (g < b) * 6;\n    else if (g === max) h = (b - r) / s + 2;\n    else h = (r - g) / s + 4;\n    s /= l < 0.5 ? max + min : 2 - max - min;\n    h *= 60;\n  } else {\n    s = l > 0 && l < 1 ? 0 : h;\n  }\n  return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n  return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n  this.h = +h;\n  this.s = +s;\n  this.l = +l;\n  this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n  brighter: function(k) {\n    k = k == null ? brighter : Math.pow(brighter, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  darker: function(k) {\n    k = k == null ? darker : Math.pow(darker, k);\n    return new Hsl(this.h, this.s, this.l * k, this.opacity);\n  },\n  rgb: function() {\n    var h = this.h % 360 + (this.h < 0) * 360,\n        s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n        l = this.l,\n        m2 = l + (l < 0.5 ? l : 1 - l) * s,\n        m1 = 2 * l - m2;\n    return new Rgb(\n      hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n      hsl2rgb(h, m1, m2),\n      hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n      this.opacity\n    );\n  },\n  displayable: function() {\n    return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n        && (0 <= this.l && this.l <= 1)\n        && (0 <= this.opacity && this.opacity <= 1);\n  },\n  formatHsl: function() {\n    var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n    return (a === 1 ? \"hsl(\" : \"hsla(\")\n        + (this.h || 0) + \", \"\n        + (this.s || 0) * 100 + \"%, \"\n        + (this.l || 0) * 100 + \"%\"\n        + (a === 1 ? \")\" : \", \" + a + \")\");\n  }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n  return (h < 60 ? m1 + (m2 - m1) * h / 60\n      : h < 180 ? m2\n      : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n      : m1) * 255;\n}\n", "export default function(constructor, factory, prototype) {\n  constructor.prototype = factory.prototype = prototype;\n  prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n  var prototype = Object.create(parent.prototype);\n  for (var key in definition) prototype[key] = definition[key];\n  return prototype;\n}\n", "import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n  var color = gamma(y);\n\n  function rgb(start, end) {\n    var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n        g = color(start.g, end.g),\n        b = color(start.b, end.b),\n        opacity = nogamma(start.opacity, end.opacity);\n    return function(t) {\n      start.r = r(t);\n      start.g = g(t);\n      start.b = b(t);\n      start.opacity = opacity(t);\n      return start + \"\";\n    };\n  }\n\n  rgb.gamma = rgbGamma;\n\n  return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n  return function(colors) {\n    var n = colors.length,\n        r = new Array(n),\n        g = new Array(n),\n        b = new Array(n),\n        i, color;\n    for (i = 0; i < n; ++i) {\n      color = colorRgb(colors[i]);\n      r[i] = color.r || 0;\n      g[i] = color.g || 0;\n      b[i] = color.b || 0;\n    }\n    r = spline(r);\n    g = spline(g);\n    b = spline(b);\n    color.opacity = 1;\n    return function(t) {\n      color.r = r(t);\n      color.g = g(t);\n      color.b = b(t);\n      return color + \"\";\n    };\n  };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n", "export function basis(t1, v0, v1, v2, v3) {\n  var t2 = t1 * t1, t3 = t2 * t1;\n  return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n      + (4 - 6 * t2 + 3 * t3) * v1\n      + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n      + t3 * v3) / 6;\n}\n\nexport default function(values) {\n  var n = values.length - 1;\n  return function(t) {\n    var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n        v1 = values[i],\n        v2 = values[i + 1],\n        v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n        v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n", "import {basis} from \"./basis.js\";\n\nexport default function(values) {\n  var n = values.length;\n  return function(t) {\n    var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n        v0 = values[(i + n - 1) % n],\n        v1 = values[i % n],\n        v2 = values[(i + 1) % n],\n        v3 = values[(i + 2) % n];\n    return basis((t - i / n) * n, v0, v1, v2, v3);\n  };\n}\n", "import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n  return function(t) {\n    return a + t * d;\n  };\n}\n\nfunction exponential(a, b, y) {\n  return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n    return Math.pow(a + t * b, y);\n  };\n}\n\nexport function hue(a, b) {\n  var d = b - a;\n  return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n  return (y = +y) === 1 ? nogamma : function(a, b) {\n    return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n  };\n}\n\nexport default function nogamma(a, b) {\n  var d = b - a;\n  return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n", "export default x => () => x;\n", "export default function(a, b) {\n  return a = +a, b = +b, function(t) {\n    return a * (1 - t) + b * t;\n  };\n}\n", "import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n    reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n  return function() {\n    return b;\n  };\n}\n\nfunction one(b) {\n  return function(t) {\n    return b(t) + \"\";\n  };\n}\n\nexport default function(a, b) {\n  var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n      am, // current match in a\n      bm, // current match in b\n      bs, // string preceding current number in b, if any\n      i = -1, // index in s\n      s = [], // string constants and placeholders\n      q = []; // number interpolators\n\n  // Coerce inputs to strings.\n  a = a + \"\", b = b + \"\";\n\n  // Interpolate pairs of numbers in a & b.\n  while ((am = reA.exec(a))\n      && (bm = reB.exec(b))) {\n    if ((bs = bm.index) > bi) { // a string precedes the next number in b\n      bs = b.slice(bi, bs);\n      if (s[i]) s[i] += bs; // coalesce with previous string\n      else s[++i] = bs;\n    }\n    if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n      if (s[i]) s[i] += bm; // coalesce with previous string\n      else s[++i] = bm;\n    } else { // interpolate non-matching numbers\n      s[++i] = null;\n      q.push({i: i, x: number(am, bm)});\n    }\n    bi = reB.lastIndex;\n  }\n\n  // Add remains of b.\n  if (bi < b.length) {\n    bs = b.slice(bi);\n    if (s[i]) s[i] += bs; // coalesce with previous string\n    else s[++i] = bs;\n  }\n\n  // Special optimization for only a single match.\n  // Otherwise, interpolate each of the numbers and rejoin the string.\n  return s.length < 2 ? (q[0]\n      ? one(q[0].x)\n      : zero(b))\n      : (b = q.length, function(t) {\n          for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n          return s.join(\"\");\n        });\n}\n", "import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n  function pop(s) {\n    return s.length ? s.pop() + \" \" : \"\";\n  }\n\n  function translate(xa, ya, xb, yb, s, q) {\n    if (xa !== xb || ya !== yb) {\n      var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n    } else if (xb || yb) {\n      s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n    }\n  }\n\n  function rotate(a, b, s, q) {\n    if (a !== b) {\n      if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n      q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n    } else if (b) {\n      s.push(pop(s) + \"rotate(\" + b + degParen);\n    }\n  }\n\n  function skewX(a, b, s, q) {\n    if (a !== b) {\n      q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n    } else if (b) {\n      s.push(pop(s) + \"skewX(\" + b + degParen);\n    }\n  }\n\n  function scale(xa, ya, xb, yb, s, q) {\n    if (xa !== xb || ya !== yb) {\n      var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n      q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n    } else if (xb !== 1 || yb !== 1) {\n      s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n    }\n  }\n\n  return function(a, b) {\n    var s = [], // string constants and placeholders\n        q = []; // number interpolators\n    a = parse(a), b = parse(b);\n    translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n    rotate(a.rotate, b.rotate, s, q);\n    skewX(a.skewX, b.skewX, s, q);\n    scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n    a = b = null; // gc\n    return function(t) {\n      var i = -1, n = q.length, o;\n      while (++i < n) s[(o = q[i]).i] = o.x(t);\n      return s.join(\"\");\n    };\n  };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n", "import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n  const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n  return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n  if (value == null) return identity;\n  if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n  svgNode.setAttribute(\"transform\", value);\n  if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n  value = value.matrix;\n  return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n", "var degrees = 180 / Math.PI;\n\nexport var identity = {\n  translateX: 0,\n  translateY: 0,\n  rotate: 0,\n  skewX: 0,\n  scaleX: 1,\n  scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n  var scaleX, scaleY, skewX;\n  if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n  if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n  if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n  if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n  return {\n    translateX: e,\n    translateY: f,\n    rotate: Math.atan2(b, a) * degrees,\n    skewX: Math.atan(skewX) * degrees,\n    scaleX: scaleX,\n    scaleY: scaleY\n  };\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n  var tween0, tween1;\n  return function() {\n    var schedule = set(this, id),\n        tween = schedule.tween;\n\n    // If this node shared tween with the previous node,\n    // just assign the updated shared tween and we\u2019re done!\n    // Otherwise, copy-on-write.\n    if (tween !== tween0) {\n      tween1 = tween0 = tween;\n      for (var i = 0, n = tween1.length; i < n; ++i) {\n        if (tween1[i].name === name) {\n          tween1 = tween1.slice();\n          tween1.splice(i, 1);\n          break;\n        }\n      }\n    }\n\n    schedule.tween = tween1;\n  };\n}\n\nfunction tweenFunction(id, name, value) {\n  var tween0, tween1;\n  if (typeof value !== \"function\") throw new Error;\n  return function() {\n    var schedule = set(this, id),\n        tween = schedule.tween;\n\n    // If this node shared tween with the previous node,\n    // just assign the updated shared tween and we\u2019re done!\n    // Otherwise, copy-on-write.\n    if (tween !== tween0) {\n      tween1 = (tween0 = tween).slice();\n      for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n        if (tween1[i].name === name) {\n          tween1[i] = t;\n          break;\n        }\n      }\n      if (i === n) tween1.push(t);\n    }\n\n    schedule.tween = tween1;\n  };\n}\n\nexport default function(name, value) {\n  var id = this._id;\n\n  name += \"\";\n\n  if (arguments.length < 2) {\n    var tween = get(this.node(), id).tween;\n    for (var i = 0, n = tween.length, t; i < n; ++i) {\n      if ((t = tween[i]).name === name) {\n        return t.value;\n      }\n    }\n    return null;\n  }\n\n  return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n  var id = transition._id;\n\n  transition.each(function() {\n    var schedule = set(this, id);\n    (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n  });\n\n  return function(node) {\n    return get(node, id).value[name];\n  };\n}\n", "import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n  var c;\n  return (typeof b === \"number\" ? interpolateNumber\n      : b instanceof color ? interpolateRgb\n      : (c = color(b)) ? (b = c, interpolateRgb)\n      : interpolateString)(a, b);\n}\n", "import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n  return function(t) {\n    this.setAttribute(name, i.call(this, t));\n  };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n  return function(t) {\n    this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n  };\n}\n\nfunction attrTweenNS(fullname, value) {\n  var t0, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n    return t0;\n  }\n  tween._value = value;\n  return tween;\n}\n\nfunction attrTween(name, value) {\n  var t0, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n    return t0;\n  }\n  tween._value = value;\n  return tween;\n}\n\nexport default function(name, value) {\n  var key = \"attr.\" + name;\n  if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n  if (value == null) return this.tween(key, null);\n  if (typeof value !== \"function\") throw new Error;\n  var fullname = namespace(name);\n  return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n", "import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n  return function() {\n    init(this, id).delay = +value.apply(this, arguments);\n  };\n}\n\nfunction delayConstant(id, value) {\n  return value = +value, function() {\n    init(this, id).delay = value;\n  };\n}\n\nexport default function(value) {\n  var id = this._id;\n\n  return arguments.length\n      ? this.each((typeof value === \"function\"\n          ? delayFunction\n          : delayConstant)(id, value))\n      : get(this.node(), id).delay;\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n  return function() {\n    set(this, id).duration = +value.apply(this, arguments);\n  };\n}\n\nfunction durationConstant(id, value) {\n  return value = +value, function() {\n    set(this, id).duration = value;\n  };\n}\n\nexport default function(value) {\n  var id = this._id;\n\n  return arguments.length\n      ? this.each((typeof value === \"function\"\n          ? durationFunction\n          : durationConstant)(id, value))\n      : get(this.node(), id).duration;\n}\n", "import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n  if (typeof value !== \"function\") throw new Error;\n  return function() {\n    set(this, id).ease = value;\n  };\n}\n\nexport default function(value) {\n  var id = this._id;\n\n  return arguments.length\n      ? this.each(easeConstant(id, value))\n      : get(this.node(), id).ease;\n}\n", "import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n  return function() {\n    var v = value.apply(this, arguments);\n    if (typeof v !== \"function\") throw new Error;\n    set(this, id).ease = v;\n  };\n}\n\nexport default function(value) {\n  if (typeof value !== \"function\") throw new Error;\n  return this.each(easeVarying(this._id, value));\n}\n", "import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n  if (typeof match !== \"function\") match = matcher(match);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n      if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n        subgroup.push(node);\n      }\n    }\n  }\n\n  return new Transition(subgroups, this._parents, this._name, this._id);\n}\n", "import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n  if (transition._id !== this._id) throw new Error;\n\n  for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n    for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n      if (node = group0[i] || group1[i]) {\n        merge[i] = node;\n      }\n    }\n  }\n\n  for (; j < m0; ++j) {\n    merges[j] = groups0[j];\n  }\n\n  return new Transition(merges, this._parents, this._name, this._id);\n}\n", "import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n  return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n    var i = t.indexOf(\".\");\n    if (i >= 0) t = t.slice(0, i);\n    return !t || t === \"start\";\n  });\n}\n\nfunction onFunction(id, name, listener) {\n  var on0, on1, sit = start(name) ? init : set;\n  return function() {\n    var schedule = sit(this, id),\n        on = schedule.on;\n\n    // If this node shared a dispatch with the previous node,\n    // just assign the updated shared dispatch and we\u2019re done!\n    // Otherwise, copy-on-write.\n    if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n    schedule.on = on1;\n  };\n}\n\nexport default function(name, listener) {\n  var id = this._id;\n\n  return arguments.length < 2\n      ? get(this.node(), id).on.on(name)\n      : this.each(onFunction(id, name, listener));\n}\n", "function removeFunction(id) {\n  return function() {\n    var parent = this.parentNode;\n    for (var i in this.__transition) if (+i !== id) return;\n    if (parent) parent.removeChild(this);\n  };\n}\n\nexport default function() {\n  return this.on(\"end.remove\", removeFunction(this._id));\n}\n", "import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n  var name = this._name,\n      id = this._id;\n\n  if (typeof select !== \"function\") select = selector(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n      if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n        if (\"__data__\" in node) subnode.__data__ = node.__data__;\n        subgroup[i] = subnode;\n        schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n      }\n    }\n  }\n\n  return new Transition(subgroups, this._parents, name, id);\n}\n", "import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n  var name = this._name,\n      id = this._id;\n\n  if (typeof select !== \"function\") select = selectorAll(select);\n\n  for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n          if (child = children[k]) {\n            schedule(child, name, id, k, children, inherit);\n          }\n        }\n        subgroups.push(children);\n        parents.push(node);\n      }\n    }\n  }\n\n  return new Transition(subgroups, parents, name, id);\n}\n", "import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n  return new Selection(this._groups, this._parents);\n}\n", "import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0 = style(this, name),\n        string1 = (this.style.removeProperty(name), style(this, name));\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, string10 = string1);\n  };\n}\n\nfunction styleRemove(name) {\n  return function() {\n    this.style.removeProperty(name);\n  };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n  var string00,\n      string1 = value1 + \"\",\n      interpolate0;\n  return function() {\n    var string0 = style(this, name);\n    return string0 === string1 ? null\n        : string0 === string00 ? interpolate0\n        : interpolate0 = interpolate(string00 = string0, value1);\n  };\n}\n\nfunction styleFunction(name, interpolate, value) {\n  var string00,\n      string10,\n      interpolate0;\n  return function() {\n    var string0 = style(this, name),\n        value1 = value(this),\n        string1 = value1 + \"\";\n    if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n    return string0 === string1 ? null\n        : string0 === string00 && string1 === string10 ? interpolate0\n        : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n  };\n}\n\nfunction styleMaybeRemove(id, name) {\n  var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n  return function() {\n    var schedule = set(this, id),\n        on = schedule.on,\n        listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n    // If this node shared a dispatch with the previous node,\n    // just assign the updated shared dispatch and we\u2019re done!\n    // Otherwise, copy-on-write.\n    if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n    schedule.on = on1;\n  };\n}\n\nexport default function(name, value, priority) {\n  var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n  return value == null ? this\n      .styleTween(name, styleNull(name, i))\n      .on(\"end.style.\" + name, styleRemove(name))\n    : typeof value === \"function\" ? this\n      .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n      .each(styleMaybeRemove(this._id, name))\n    : this\n      .styleTween(name, styleConstant(name, i, value), priority)\n      .on(\"end.style.\" + name, null);\n}\n", "function styleInterpolate(name, i, priority) {\n  return function(t) {\n    this.style.setProperty(name, i.call(this, t), priority);\n  };\n}\n\nfunction styleTween(name, value, priority) {\n  var t, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n    return t;\n  }\n  tween._value = value;\n  return tween;\n}\n\nexport default function(name, value, priority) {\n  var key = \"style.\" + (name += \"\");\n  if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n  if (value == null) return this.tween(key, null);\n  if (typeof value !== \"function\") throw new Error;\n  return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n", "import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n  return function() {\n    this.textContent = value;\n  };\n}\n\nfunction textFunction(value) {\n  return function() {\n    var value1 = value(this);\n    this.textContent = value1 == null ? \"\" : value1;\n  };\n}\n\nexport default function(value) {\n  return this.tween(\"text\", typeof value === \"function\"\n      ? textFunction(tweenValue(this, \"text\", value))\n      : textConstant(value == null ? \"\" : value + \"\"));\n}\n", "function textInterpolate(i) {\n  return function(t) {\n    this.textContent = i.call(this, t);\n  };\n}\n\nfunction textTween(value) {\n  var t0, i0;\n  function tween() {\n    var i = value.apply(this, arguments);\n    if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n    return t0;\n  }\n  tween._value = value;\n  return tween;\n}\n\nexport default function(value) {\n  var key = \"text\";\n  if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n  if (value == null) return this.tween(key, null);\n  if (typeof value !== \"function\") throw new Error;\n  return this.tween(key, textTween(value));\n}\n", "import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n  var name = this._name,\n      id0 = this._id,\n      id1 = newId();\n\n  for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n    for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n      if (node = group[i]) {\n        var inherit = get(node, id0);\n        schedule(node, name, id1, i, group, {\n          time: inherit.time + inherit.delay + inherit.duration,\n          delay: 0,\n          duration: inherit.duration,\n          ease: inherit.ease\n        });\n      }\n    }\n  }\n\n  return new Transition(groups, this._parents, name, id1);\n}\n", "import {set} from \"./schedule.js\";\n\nexport default function() {\n  var on0, on1, that = this, id = that._id, size = that.size();\n  return new Promise(function(resolve, reject) {\n    var cancel = {value: reject},\n        end = {value: function() { if (--size === 0) resolve(); }};\n\n    that.each(function() {\n      var schedule = set(this, id),\n          on = schedule.on;\n\n      // If this node shared a dispatch with the previous node,\n      // just assign the updated shared dispatch and we\u2019re done!\n      // Otherwise, copy-on-write.\n      if (on !== on0) {\n        on1 = (on0 = on).copy();\n        on1._.cancel.push(cancel);\n        on1._.interrupt.push(cancel);\n        on1._.end.push(end);\n      }\n\n      schedule.on = on1;\n    });\n\n    // The selection was empty, resolve end immediately\n    if (size === 0) resolve();\n  });\n}\n", "export {\n  linear as easeLinear\n} from \"./linear.js\";\n\nexport {\n  quadInOut as easeQuad,\n  quadIn as easeQuadIn,\n  quadOut as easeQuadOut,\n  quadInOut as easeQuadInOut\n} from \"./quad.js\";\n\nexport {\n  cubicInOut as easeCubic,\n  cubicIn as easeCubicIn,\n  cubicOut as easeCubicOut,\n  cubicInOut as easeCubicInOut\n} from \"./cubic.js\";\n\nexport {\n  polyInOut as easePoly,\n  polyIn as easePolyIn,\n  polyOut as easePolyOut,\n  polyInOut as easePolyInOut\n} from \"./poly.js\";\n\nexport {\n  sinInOut as easeSin,\n  sinIn as easeSinIn,\n  sinOut as easeSinOut,\n  sinInOut as easeSinInOut\n} from \"./sin.js\";\n\nexport {\n  expInOut as easeExp,\n  expIn as easeExpIn,\n  expOut as easeExpOut,\n  expInOut as easeExpInOut\n} from \"./exp.js\";\n\nexport {\n  circleInOut as easeCircle,\n  circleIn as easeCircleIn,\n  circleOut as easeCircleOut,\n  circleInOut as easeCircleInOut\n} from \"./circle.js\";\n\nexport {\n  bounceOut as easeBounce,\n  bounceIn as easeBounceIn,\n  bounceOut as easeBounceOut,\n  bounceInOut as easeBounceInOut\n} from \"./bounce.js\";\n\nexport {\n  backInOut as easeBack,\n  backIn as easeBackIn,\n  backOut as easeBackOut,\n  backInOut as easeBackInOut\n} from \"./back.js\";\n\nexport {\n  elasticOut as easeElastic,\n  elasticIn as easeElasticIn,\n  elasticOut as easeElasticOut,\n  elasticInOut as easeElasticInOut\n} from \"./elastic.js\";\n", "export function cubicIn(t) {\n  return t * t * t;\n}\n\nexport function cubicOut(t) {\n  return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n  return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n", "import {Transition} from \"./transition/index.js\";\nimport {SCHEDULED} from \"./transition/schedule.js\";\n\nvar root = [null];\n\nexport default function(node, name) {\n  var schedules = node.__transition,\n      schedule,\n      i;\n\n  if (schedules) {\n    name = name == null ? null : name + \"\";\n    for (i in schedules) {\n      if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n        return new Transition([[node]], root, name, +i);\n      }\n    }\n  }\n\n  return null;\n}\n", "export default x => () => x;\n", "export default function ZoomEvent(type, {\n  sourceEvent,\n  target,\n  transform,\n  dispatch\n}) {\n  Object.defineProperties(this, {\n    type: {value: type, enumerable: true, configurable: true},\n    sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n    target: {value: target, enumerable: true, configurable: true},\n    transform: {value: transform, enumerable: true, configurable: true},\n    _: {value: dispatch}\n  });\n}\n", "export function Transform(k, x, y) {\n  this.k = k;\n  this.x = x;\n  this.y = y;\n}\n\nTransform.prototype = {\n  constructor: Transform,\n  scale: function(k) {\n    return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n  },\n  translate: function(x, y) {\n    return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n  },\n  apply: function(point) {\n    return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n  },\n  applyX: function(x) {\n    return x * this.k + this.x;\n  },\n  applyY: function(y) {\n    return y * this.k + this.y;\n  },\n  invert: function(location) {\n    return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n  },\n  invertX: function(x) {\n    return (x - this.x) / this.k;\n  },\n  invertY: function(y) {\n    return (y - this.y) / this.k;\n  },\n  rescaleX: function(x) {\n    return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n  },\n  rescaleY: function(y) {\n    return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n  },\n  toString: function() {\n    return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n  }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n  while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n  return node.__zoom;\n}\n", "export function nopropagation(event) {\n  event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n  event.preventDefault();\n  event.stopImmediatePropagation();\n}\n", "export function slugString(string) {\n  return string\n    .normalize(\"NFD\")\n    .replace(/[\\u0300-\\u036f]/g, \"\") // remove accents\n    .replace(/ /g, \"-\") // turn spaces into dashes\n    .replace(/[^A-Z0-9-]/gi, \"\") // remove everything but letters, numbers and dashes; case insensitive\n    .toLowerCase();\n}\n", "export const SETTINGS = {\n  currency: {\n    symbol: \"\u20AC\", // default currency symbol is '$'\n    format: \"%v %s\", // controls output: %s = symbol, %v = value/number (can be object: see below)\n    decimal: \",\", // decimal point separator\n    thousand:  \".\", // thousands separator\n    precision: 2 // decimal places\n  },\n  number: {\n    precision: 2, // default precision on numbers is 0\n    decimal: \",\", // decimal point separator\n    thousand: \".\", // thousands separator\n  }\n}\n", "import 'air-datepicker';\nimport 'air-datepicker/dist/css/datepicker.css';\n\n$.fn.datepicker.language[\"en\"] = {\n  days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n  daysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n  daysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n  months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n  monthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n  today: \"Today\",\n  clear: \"Clear\",\n  dateFormat: \"mm/dd/yyyy\",\n  timeFormat: \"hh:ii aa\",\n  firstDay: 0\n};\n\n$.fn.datepicker.language[\"ca\"] = {\n  days: [\"Diumenge\", \"Dilluns\", \"Dimarts\", \"Dimecres\", \"Dijous\", \"Divendres\", \"Dissabte\"],\n  daysShort: [\"Diu\", \"Dill\", \"Dima\", \"Dime\", \"Dij\", \"Div\", \"Dis\"],\n  daysMin: [\"Dg\", \"Dl\", \"Dm\", \"Dc\", \"Dj\", \"Dv\", \"Ds\"],\n  months: [\"Gener\", \"Febrer\", \"Mar\u00E7\", \"Abril\", \"Maig\", \"Juny\", \"Juliol\", \"Agost\", \"Setembre\", \"Octubre\", \"Novembre\", \"Desembre\"],\n  monthsShort: [\"Gen\", \"Feb\", \"Mar\", \"Abr\", \"Mai\", \"Jun\", \"Jul\", \"Ago\", \"Set\", \"Oct\", \"Nov\", \"Des\"],\n  today: \"Avui\",\n  clear: \"Netejar\",\n  dateFormat: \"dd/mm/yyyy\",\n  timeFormat: \"hh:ii aa\",\n  firstDay: 1\n};\n\n$.fn.datepicker.language[\"es\"] = {\n  days: [\"Domingo\", \"Lunes\", \"Martes\", \"Mi\u00E9rcoles\", \"Jueves\", \"Viernes\", \"S\u00E1bado\"],\n  daysShort: [\"Dom\", \"Lun\", \"Mar\", \"Mie\", \"Jue\", \"Vie\", \"Sab\"],\n  daysMin: [\"Do\", \"Lu\", \"Ma\", \"Mi\", \"Ju\", \"Vi\", \"Sa\"],\n  months: [\"Enero\", \"Febrero\", \"Marzo\", \"Abril\", \"Mayo\", \"Junio\", \"Julio\", \"Agosto\", \"Septiembre\", \"Octubre\", \"Noviembre\", \"Diciembre\"],\n  monthsShort: [\"Ene\", \"Feb\", \"Mar\", \"Abr\", \"May\", \"Jun\", \"Jul\", \"Ago\", \"Sep\", \"Oct\", \"Nov\", \"Dic\"],\n  today: \"Hoy\",\n  clear: \"Limpiar\",\n  dateFormat: \"dd/mm/yyyy\",\n  timeFormat: \"hh:ii aa\",\n  firstDay: 1\n};\n\n// http://t1m0n.name/air-datepicker/docs/\nexport class Datepicker {\n  constructor(elem, options) {\n    this.element = elem || undefined\n\n    if (this.element) {\n      const $selector = $(this.element)\n      if ($selector.data('datepicker') === undefined) {\n        $selector.datepicker(options);\n      }\n\n      return $selector.data('datepicker');\n    }\n  }\n\n  destroy() {\n    $(this.element).data('datepicker').destroy()\n  }\n}\n", "require('./datepicker');\r\nrequire('./body');\r\nrequire('./navigation');\r\nrequire('./timepicker');", "export const readMore = el => {\n  el.firstElementChild.querySelector(\"[data-toggle]\").addEventListener(\"click\", () => el.classList.add(\"is-active\"));\n  el.lastElementChild.querySelector(\"[data-toggle]\").addEventListener(\"click\", () => el.classList.remove(\"is-active\"));\n};\n\n// Static initialization\n$(document).on(\"turbolinks:load\", function() {\n  const elements = document.querySelectorAll(\".js-read-more\");\n  elements.forEach(el => readMore(el));\n});\n", "import { ImageLightbox } from './image-lightbox';\n\nexport class HorizontalCarousel {\n  constructor(carousel) {\n    if (carousel) {\n      this.content = carousel.firstElementChild;\n      this.next = carousel.querySelector(\"[data-next]\");\n      this.prev = carousel.querySelector(\"[data-prev]\");\n\n      // initializations\n      const { visibleItems, thumbnails } = carousel.dataset\n      this.start = 0;\n      this.thumbnails = thumbnails;\n\n      if (this.thumbnails && this.content.children.length > 1) {\n        carousel.parentNode.insertBefore(document.createElement(\"div\"), carousel.parentNode.firstElementChild)\n        this.setActiveThumbnail(this.content.firstElementChild)\n\n        // event handling for thumbnails\n        Array.from(this.content.children).forEach(child => {\n          child.addEventListener(\"click\", this.onThumbnailClick.bind(this))\n          child.classList.add(\"is-thumbnail\")\n        })\n\n        const avg = [...this.content.children].reduce((acc, b) => acc + b.getBoundingClientRect().width, 0) / this.content.children.length\n        // const [{ width: totalWidth }, { width }] = [, this.content.children[1].getBoundingClientRect()]\n        this.visibleItems = this.content.getBoundingClientRect().width / avg\n      } else {\n        this.visibleItems = parseInt(visibleItems) || 1;\n        Array.from(this.content.children).forEach(child => (child.style.flex = `0 0 calc(100% / ${this.visibleItems})`));\n      }\n\n      this.maxValue = (this.content.children.length - this.visibleItems) * (100 / this.visibleItems);\n\n      // init frames\n      this.setVisibility(this.next, this.start < this.maxValue);\n      this.setVisibility(this.prev, this.start !== 0);\n\n      // event handling\n      this.next.addEventListener(\"click\", this.onNextClick.bind(this));\n      this.prev.addEventListener(\"click\", this.onPrevClick.bind(this));\n    } else {\n      console.warn(\"Horizontal Carousel Error: DOM Element missing\");\n    }\n  }\n\n  setTransform() {\n    this.content.style.transform = `translateX(${this.start}%)`;\n  }\n\n  setVisibility(element, visible = true) {\n    element.style.visibility = visible ? \"visible\" : \"hidden\";\n  }\n\n  setActiveThumbnail(node) {\n    const carousel = this.content.parentNode\n    const copy = node.cloneNode(true)\n    copy.classList.remove(\"is-thumbnail\")\n    copy.classList.add(\"is-active\")\n    copy.style = \"position:relative;\"\n    carousel.parentNode.replaceChild(copy, carousel.parentNode.firstElementChild)\n\n    new ImageLightbox(copy)\n\n    copy.querySelector(\"img\").addEventListener(\"load\", this.onImageLoad.bind(this))\n  }\n\n  onNextClick() {\n    if (Math.abs(this.start) < this.maxValue) {\n      this.start -= 100 / this.visibleItems;\n      this.start = Math.ceil(Math.abs(this.start)) > this.maxValue ? -1 * this.maxValue : this.start\n      this.setTransform(this.start);\n    }\n\n    this.setVisibility(this.next, Math.abs(this.start) < this.maxValue);\n    this.setVisibility(this.prev, this.start < 0);\n  }\n\n  onPrevClick() {\n    if (this.start < 0) {\n      this.start += 100 / this.visibleItems;\n      this.start = Math.ceil(this.start) > 0 ? 0 : this.start\n      this.setTransform(this.start);\n    }\n\n    this.setVisibility(this.prev, this.start < 0);\n    this.setVisibility(this.next, Math.abs(this.start) < this.maxValue);\n  }\n\n  onThumbnailClick({ currentTarget }) {\n    this.setActiveThumbnail(currentTarget)\n  }\n\n  onImageLoad({ target }) {\n    const { naturalHeight, naturalWidth } = target;\n    if (naturalHeight > naturalWidth) {\n      target.classList.add(\"is-portrait\");\n    }\n  }\n\n  destroy() {\n    this.next.removeEventListener(\"click\", this.onNextClick.bind(this));\n    this.prev.removeEventListener(\"click\", this.onPrevClick.bind(this));\n\n    if (this.thumbnails && this.content.children.length > 1) {\n      Array.from(this.content.children).forEach(child => child.removeEventListener(\"click\", this.onThumbnailClick.bind(this)))\n    }\n  }\n}\n\n// Static initialization\n$(document).on(\"turbolinks:load\", function() {\n  const carousels = document.querySelectorAll(\".js-horizontal-carousel\");\n  carousels.forEach(carousel => new HorizontalCarousel(carousel));\n});\n", "export class ImageLightbox {\n  constructor(lightbox) {\n    if (lightbox) {\n      const isImg = this.isImage(lightbox);\n\n      if (isImg || this.containsAnImg(lightbox)) {\n        const options = {\n          type: \"image\",\n          closeOnContentClick: true,\n          closeBtnInside: false,\n          image: {\n            verticalFit: true\n          },\n          items: {\n            src: isImg ? lightbox.src : lightbox.querySelector(\"img\").src\n          }\n        };\n\n        $(lightbox).magnificPopup(options);\n      } else {\n        console.warn(\"Image-lightbox Error: there's no images in the markup\");\n      }\n    } else {\n      console.warn(\"Image-lightbox Error: DOM Element missing\");\n    }\n  }\n\n  isImage(node) {\n    return node.tagName === \"IMG\";\n  }\n\n  containsAnImg(node) {\n    return node.querySelector(\"img\") !== null;\n  }\n}\n\n// Static initialization\n$(document).on(\"turbolinks:load\", function() {\n  const lightboxes = document.querySelectorAll(\".js-image-lightbox\");\n  lightboxes.forEach(lightbox => new ImageLightbox(lightbox));\n});\n", "// https://api.jqueryui.com/slider/\nexport class RangeSlider {\n  constructor({ elem, min = 0, max = 100, defaultRange = [min, max], rangeCallback = () => {} }) {\n    this.element = elem || undefined;\n\n    if (this.element) {\n      $(this.element).slider({\n        range: true,\n        min,\n        max,\n        values: defaultRange,\n        slide: rangeCallback\n      });\n    }\n  }\n\n  destroy() {\n    $(this.element).slider(\"destroy\")\n  }\n}\n", "import { translate } from '../../../lib/vue/filters'\n\nexport class Middleware {\n  constructor({ dictionary, filters }) {\n    this.dictionary = dictionary || []\n    this.filters = filters || []\n  }\n\n  getFilters(stats) {\n    const filters = [];\n\n    for (let index = 0; index < this.filters.length; index++) {\n      const { id: key, ...rest } = this.filters[index];\n      const element = stats[key];\n      const { field_type: type, vocabulary_terms: options = [], name_translations: title = {} } = this.getAttributesByKey(key);\n\n      filters.push({\n        ...element,\n        ...rest,\n        title: translate(title),\n        options: Array.isArray(options) ? options.map(opt => ({ ...opt, title: translate(opt.name_translations) })) : [],\n        type: type ? type : key,\n        key\n      });\n    }\n\n    return filters;\n  }\n\n  getAttributesByKey(prop) {\n    const { attributes = {} } =\n      this.dictionary.find(entry => {\n        const { attributes: { uid = \"\" } = {} } = entry;\n        return uid === prop;\n      }) || {};\n\n    return attributes;\n  }\n}\n", "export const translate = (value = {}) => {\n  const lang = I18n.locale || \"es\";\n  // Look for the language key, fallback to the first found key\n  return Object.prototype.hasOwnProperty.call(value, lang) && value[lang]\n    ? value[lang]\n    : value[Object.keys(value)[0]];\n};\n\nexport const money = (value, opts = {}) => {\n  const lang = I18n.locale || \"es\";\n  const options = { style: \"currency\", currency: \"EUR\", ...opts };\n  return value !== undefined && value !== null\n    ? parseFloat(value).toLocaleString(lang, options)\n    : undefined;\n};\n\nexport const date = (value, opts = {}) => {\n  if (!value) return null\n  const lang = I18n.locale || \"es\";\n  return value instanceof Date\n    ? value.toLocaleDateString(lang, opts)\n    : new Date(value).toLocaleDateString(lang, opts);\n};\n\nexport const truncate = (value = \"\", opts = {}) => {\n  const { length = 30, omission = \"\u2026\" } = opts\n  return value.length <= length\n    ? value\n    : `${value.substring(0, length)}${omission}`\n};\n\nexport const percent = value => {\n  if (typeof value !== \"number\") return;\n  return (value / 100).toLocaleString(I18n.locale, {\n    style: \"percent\",\n    maximumFractionDigits: 1\n  });\n};\n\nexport const VueFiltersMixin = {\n  methods: {\n    translate,\n    money,\n    date,\n    truncate,\n    percent\n  },\n  filters: {\n    translate,\n    money,\n    date,\n    truncate,\n    percent\n  }\n};\n", "export const debounce = (func, timeout) => {\n  let timer = undefined;\n  return (...args) => {\n    const next = () => func(...args);\n    if (timer) {\n      clearTimeout(timer);\n    }\n    timer = setTimeout(next, timeout > 0 ? timeout : 300);\n  };\n}", "import axeCore from 'axe-core';\nimport '../../../../assets/stylesheets/modules/accessibility.css';\n\nlet cache = {}\nlet style = {}\nlet lastNotification = ''\n\nconst deferred = {}\nconst impacts = [...axeCore.constants.impact].reverse()\n\nexport function checkAndReportAccessibility (node, label) {\n  const deferred = createDeferred()\n  style = { ...defaultOptions.style }\n\n  axeCore.run(node || document, defaultOptions.runOptions, (error, results) => {\n    if (error) deferred.reject(error)\n    if (results && !results.violations.length) return\n    if (JSON.stringify(results.violations) === lastNotification) return\n\n    defaultOptions.customResultHandler ? defaultOptions.customResultHandler(error, results) : standardResultHandler(error, results, label)\n    deferred.resolve()\n    lastNotification = JSON.stringify(results.violations)\n  })\n  return deferred.promise\n}\n\nconst standardResultHandler = function (errorInfo, results, label) {\n  results.violations = results.violations.filter(result => {\n    result.nodes = result.nodes.filter(node => {\n      const key = node.target.toString() + result.id\n      const retVal = (!cache[key])\n      cache[key] = key\n      return retVal\n    })\n    return (!!result.nodes.length)\n  })\n\n  if (results.violations.length) {\n    const violations = sortViolations(results.violations)\n    console.group(`%cAxe issues ${label ? '- ' + label : ''}`, style.head)\n    violations.forEach(result => {\n      console.groupCollapsed('%c%s%c %s %s %c%s', style[result.impact || 'minor'], result.impact, style.title, result.help, '\\n', style.url, result.helpUrl)\n      result.nodes.forEach(node => {\n        failureSummary(node, 'any')\n        failureSummary(node, 'none')\n      })\n      console.groupEnd()\n    })\n    console.groupEnd()\n  }\n}\n\nexport function resetCache () {\n  cache = {}\n}\n\nexport function resetLastNotification () {\n  lastNotification = ''\n}\n\nexport const draf = (cb) => requestAnimationFrame(() => requestAnimationFrame(cb))\n\nfunction sortViolations (violations) {\n  let sorted = []\n  impacts.forEach(impact => {\n    sorted = [...sorted, ...violations.filter(violation => violation.impact === impact)]\n  })\n  return sorted\n}\n\nfunction createDeferred () {\n  deferred.promise = new Promise((resolve, reject) => {\n    deferred.resolve = resolve\n    deferred.reject = reject\n  })\n  return deferred\n}\n\nfunction failureSummary (node, key) {\n  if (node[key].length > 0) {\n    logElement(node, console.groupCollapsed)\n    logHtml(node)\n    logFailureMessage(node, key)\n\n    var relatedNodes = []\n    node[key].forEach(check => {\n      relatedNodes = relatedNodes.concat(check.relatedNodes)\n    })\n\n    if (relatedNodes.length > 0) {\n      console.groupCollapsed('Related nodes')\n      relatedNodes.forEach(relatedNode => {\n        logElement(relatedNode, console.log)\n        logHtml(relatedNode)\n      })\n      console.groupEnd()\n    }\n    console.groupEnd()\n  }\n}\n\nfunction logElement (node, logFn) {\n  const el = document.querySelector(node.target.toString())\n  if (!el) {\n    return logFn('Selector: %c%s', style.boldCourier, node.target.toString())\n  }\n  logFn('Element: %o', el)\n}\n\nfunction logHtml (node) {\n  console.log('HTML: %c%s', style.boldCourier, node.html)\n}\n\nfunction logFailureMessage (node, key) {\n  const message = axeCore._audit.data.failureSummaries[key]\n    .failureMessage(node[key]\n      .map(function (check) {\n        return check.message || ''\n      }))\n  console.error(message)\n}\n\nexport const defaultOptions = {\n  auto: true,\n  allowConsoleClears: true,\n  clearConsoleOnUpdate: false,\n  delay: 500,\n  config: {\n    branding: {\n      application: 'vue-axe'\n    }\n  },\n  runOptions: {\n    reporter: 'v2',\n    resultTypes: ['violations']\n  },\n  style: {\n    head: 'padding:6px;font-size:20px;font-weight:bold;',\n    boldCourier: 'font-weight:bold;font-family:Courier;',\n    moderate: 'padding:2px 4px;border-radius:5px;background-color:#FFBA52;color:#222;font-weight:normal;',\n    critical: 'padding:2px 4px;border-radius:5px;background-color:#AD0000;color:#fff;font-weight:normal;',\n    serious: 'padding:2px 4px;border-radius:5px;background-color:#333;color:#FFCE85;font-weight:normal;',\n    minor: 'padding:2px 4px;border-radius:5px;background-color:#333;color:#FFCE85;font-weight:normal;',\n    title: 'font-color:black;font-weight:bold;',\n    url: 'font-color:#4D4D4D;font-weight:normal;'\n  },\n  plugins: []\n}\n\nexport function clear (forceClear = false, options) {\n  resetCache()\n  if (forceClear || options.clearConsoleOnUpdate) {\n    resetLastNotification()\n    if (options.allowConsoleClears) {\n      console.clear()\n    }\n  }\n}\n", "/**\n * Returns an object whose keys are the different groups, i.e. the different values of the groupBy property\n * @param {Array} xs array element\n * @param {String} key property to be grouped by.\n */\nexport const groupBy = (xs, key) => xs.reduce((rv, x) => {\n  (rv[x[key]] = rv[x[key]] || []).push(x);\n  return rv;\n}, {});\n", "import * as d3 from 'd3';\nimport { d3locale } from '../../../lib/shared';\n\nexport const formatNumbers = (value) => {\n  const lang = I18n.locale || \"es\";\n  return value.toString().length >= 7 ? d3.format(\".2s\")(value) : d3.formatDefaultLocale(d3locale[lang]).format(',.0f')(value)\n};\n", "import Appsignal from '@appsignal/javascript'\nimport { plugin } from '@appsignal/plugin-window-events'\n\nconst appsignal = new Appsignal({\n  key: process.env.APPSIGNAL_PUSH_API_KEY\n});\n\n// https://docs.appsignal.com/front-end/plugins/plugin-window-events.html\nappsignal.use(plugin())\n\nexport default appsignal;\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose;\n    if (async) {\n        if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n        dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n        if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n        dispose = value[Symbol.dispose];\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n", "// Utils\nexport * from \"./utils/functional\"\nexport * from \"./utils/hashmap\"\nexport * from \"./utils/error\"\nexport * from \"./utils/url\"\nexport * from \"./utils/async\"\nexport * from \"./utils/environment\"\nexport * from \"./utils/push-api\"\n\n// Classes\nexport { Serializable } from \"./serializable\"\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose;\n    if (async) {\n        if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n        dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n        if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n        dispose = value[Symbol.dispose];\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n", "/**\n * Taken from from https://github.com/reduxjs/redux\n *\n * (This file used to be a TypeScript port of the `compose` function, but since\n * Redux has been ported to TypeScript, it's now an exact copy)\n */\n\ntype Func<T extends any[], R> = (...a: T) => R\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for the\n * resulting composite function.\n *\n * @param funcs The functions to compose.\n * @returns A function obtained by composing the argument functions from right\n *   to left. For example, `compose(f, g, h)` is identical to doing\n *   `(...args) => f(g(h(...args)))`.\n */\nexport function compose(): <R>(a: R) => R\n\nexport function compose<F extends Function>(f: F): F\n\n/* two functions */\nexport function compose<A, T extends any[], R>(\n  f1: (a: A) => R,\n  f2: Func<T, A>\n): Func<T, R>\n\n/* three functions */\nexport function compose<A, B, T extends any[], R>(\n  f1: (b: B) => R,\n  f2: (a: A) => B,\n  f3: Func<T, A>\n): Func<T, R>\n\n/* four functions */\nexport function compose<A, B, C, T extends any[], R>(\n  f1: (c: C) => R,\n  f2: (b: B) => C,\n  f3: (a: A) => B,\n  f4: Func<T, A>\n): Func<T, R>\n\n/* rest */\nexport function compose<R>(\n  f1: (a: any) => R,\n  ...funcs: Function[]\n): (...args: any[]) => R\n\nexport function compose<R>(...funcs: Function[]): (...args: any[]) => R\n\nexport function compose(...funcs: Function[]) {\n  if (funcs.length === 0) {\n    // infer the argument type so it is usable in inference down the line\n    return <T>(arg: T) => arg\n  }\n\n  if (funcs.length === 1) {\n    return funcs[0]\n  }\n\n  return funcs.reduce((a, b) => (...args: any) => a(b(...args)))\n}\n", "import type { HashMap, HashMapValue } from \"@appsignal/types\"\n\n/**\n * Converts all values in a flat object to a string.\n *\n * Adapted from https://stackoverflow.com/questions/46982698/how-do-i-convert-all-property-values-in-an-object-to-type-string\n */\nexport function toHashMapString(\n  obj?: HashMap<any>\n): HashMap<string> | undefined {\n  if (!obj) return\n\n  Object.keys(obj).forEach(k => {\n    if (typeof obj[k] === \"object\") {\n      obj[k] = JSON.stringify(obj[k])\n    }\n\n    obj[k] = String(obj[k])\n  })\n\n  return obj\n}\n\n/**\n * Converts any non-string, boolean or number value in an object to a string\n */\nexport function toHashMap(\n  obj?: HashMap<any>\n): HashMap<HashMapValue> | undefined {\n  if (!obj) return\n\n  Object.keys(obj).forEach(k => {\n    if (\n      typeof obj[k] === \"string\" ||\n      typeof obj[k] === \"boolean\" ||\n      typeof obj[k] === \"number\"\n    ) {\n      return\n    }\n\n    obj[k] = JSON.stringify(obj[k])\n  })\n\n  return obj\n}\n", "/**\n * Check if the given object is an error-like object.\n *\n * @param   {Error | T}     error      An `Error` object or an error-like object\n *\n * @return  {boolean}\n */\nexport function isError<T extends Error>(error: Error | T): boolean {\n  return (\n    typeof error === \"object\" && typeof (error as any).message !== \"undefined\"\n  )\n}\n\n/**\n * Get backtrace from an `Error` object, or an error-like object\n *\n * @param   {Error | T}     error      An `Error` object or an error-like object\n *\n * @return  {string[]}                 A backtrace\n */\nexport function getStacktrace<T extends Error>(error: Error | T): string[] {\n  if (\n    typeof (error as any).stacktrace !== \"undefined\" ||\n    typeof (error as any)[\"opera#sourceloc\"] !== \"undefined\"\n  ) {\n    // probably opera\n    const { stacktrace = \"\" } = error as any\n    return stacktrace\n      .split(\"\\n\")\n      .filter((line: string | undefined) => line !== \"\")\n  } else if (error.stack) {\n    // an Error or a plain object that resembles an error\n    const { stack = \"\" } = error\n    return stack.split(\"\\n\").filter(line => line !== \"\")\n  } else {\n    // probably IE9 :(\n    return [\"No stacktrace available\"]\n  }\n}\n", "/**\n * Encodes given object into url-friendly format\n *\n * @param   {object}  object:   [object: An object that contains serializable values]\n *\n * @return  {string}            [Encoded URI params]\n */\nexport function urlEncode(object: { [key: string]: any }): string {\n  return Object.keys(object)\n    .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(object[key])}`)\n    .join(\"&\")\n}\n", "/**\n * Returns `true` if the function is an async function.\n *\n * Adapted from https://davidwalsh.name/javascript-detect-async-function\n */\nexport const isAsync = (fn: Function) => fn.constructor.name === \"AsyncFunction\"\n", "/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * Originally from https://github.com/getsentry/sentry-javascript/\n */\n\nexport function isNodeEnv(): boolean {\n  return (\n    Object.prototype.toString.call(\n      typeof process !== \"undefined\" ? process : 0\n    ) === \"[object process]\"\n  )\n}\n\n/**\n * Safely get global scope object\n *\n * Originally from https://github.com/getsentry/sentry-javascript/\n */\nexport function getGlobalObject<T>(): T {\n  return (isNodeEnv()\n    ? global\n    : typeof window !== \"undefined\"\n    ? window\n    : typeof self !== \"undefined\"\n    ? self\n    : {}) as T\n}\n", "import fetch from \"isomorphic-unfetch\"\n\nexport async function validatePushApiKey({\n  endpoint = \"https://push.appsignal.com\",\n  apiKey\n}: {\n  endpoint?: string\n  apiKey: string\n}) {\n  const { status } = await fetch(`${endpoint}/1/auth?api_key=${apiKey}`)\n\n  switch (status) {\n    case 200:\n      return true\n    case 401:\n      return false\n    default:\n      throw new Error(\n        `Invalid ${status} response from server when authenticating`\n      )\n  }\n}\n", "export class Serializable<T = [] | {}> {\n  protected _data: T\n\n  constructor(data: T) {\n    this._data = data\n  }\n\n  public toJSON(): string {\n    return JSON.stringify(this._data)\n  }\n\n  public serialize(): T {\n    return this._data\n  }\n}\n", "// Do not touch this file, auto-generated by scripts/create-version\nexport const VERSION = \"1.3.27\"\n", "import { getGlobalObject, isNodeEnv } from \"@appsignal/core\"\n\nexport class Environment {\n  /**\n   * Serializes the current browser environment into an object.\n   */\n  public static serialize(): { [key: string]: string } {\n    return {\n      transport: this.transport(),\n      origin: this.origin()\n    }\n  }\n\n  /**\n   * Returns the origin of the current context.\n   *\n   * @return  {string}       The origin URL\n   */\n  public static origin(): string {\n    const globals = getGlobalObject<Window>()\n\n    // environments like nodejs or react native where an origin isn't relavent\n    if (!globals.location) {\n      return \"\"\n    }\n\n    return (\n      globals.location.origin ||\n      `${globals.location.protocol}//${globals.location.hostname}`\n    )\n  }\n\n  /**\n   * Returns the best currently available API that the current browser supports\n   * for making HTTP requests.\n   *\n   * @return  {string}       The name of the best availble HTTP transport\n   */\n  public static transport(): string {\n    // we throw out the typechecking here as the transports aren't exported\n    // using TS' `Window` type\n    const globals = getGlobalObject<Window>() as any\n\n    // we ignore jest here, as it's a false positive for a node\n    // environment and breaks the tests\n    if (isNodeEnv() && typeof jest === \"undefined\") {\n      return \"NodeHTTP\"\n    } else if (globals.XDomainRequest) {\n      return \"XDomainRequest\"\n    } else if (globals.XMLHttpRequest && !globals.fetch) {\n      return \"XMLHttpRequest\"\n    } else {\n      return \"fetch\"\n    }\n  }\n\n  /**\n   * Indicates whether promises are available in the current browser\n   * or environment.\n   *\n   * Adapted from https://github.com/Modernizr/Modernizr/blob/master/feature-detects/es6/promises.js\n   *\n   * @return  {boolean}       A value indicating if Promises are supported\n   */\n  public static supportsPromises(): boolean {\n    // we throw out the typechecking here as the transports aren't exported\n    // using TS' `Window` type\n    const globals = getGlobalObject<Window>() as any\n\n    return (\n      \"Promise\" in globals &&\n      // Some of these methods are missing from\n      // Firefox/Chrome experimental implementations\n      \"resolve\" in globals.Promise &&\n      \"reject\" in globals.Promise &&\n      \"all\" in globals.Promise &&\n      \"race\" in globals.Promise &&\n      // Older version of the spec had a resolver object\n      // as the arg rather than a function\n      (function () {\n        var resolve\n        new globals.Promise(function (r: any) {\n          resolve = r\n        })\n        return typeof resolve === \"function\"\n      })()\n    )\n  }\n}\n", "import { Transport } from \"../interfaces/transport\"\n\n// Fixes TypeScript complaining about this class\n// not existing\ndeclare var XDomainRequest: any\n\nexport class XDomainTransport implements Transport {\n  public url: string\n\n  constructor(url: string) {\n    this.url = url\n  }\n\n  public send(data: string): Promise<any> {\n    return new Promise((resolve, reject) => {\n      const req = new XDomainRequest()\n      const rx = new RegExp(\"^https?:\")\n\n      req.onload = () => resolve({})\n\n      // XDomainRequest will only make a request to a URL with\n      // the same protocol\n      req.open(\"POST\", this.url.replace(rx, window?.location?.protocol))\n\n      setTimeout(() => {\n        try {\n          req.send(data)\n        } catch (e) {\n          reject(e)\n        }\n      }, 0)\n    })\n  }\n}\n", "import { Transport } from \"../interfaces/transport\"\n\nexport class XHRTransport implements Transport {\n  public url: string\n\n  constructor(url: string) {\n    this.url = url\n  }\n\n  public send(data: string): Promise<any> {\n    return new Promise((resolve, reject) => {\n      try {\n        const req = new XMLHttpRequest()\n\n        req.onreadystatechange = () => {\n          if (req.readyState === XMLHttpRequest.DONE) {\n            resolve({})\n          }\n        }\n\n        req.open(\"POST\", this.url)\n        req.send(data)\n      } catch (e) {\n        reject(e)\n      }\n    })\n  }\n}\n", "import { Transport } from \"../interfaces/transport\"\n\nexport class FetchTransport implements Transport {\n  public url: string\n\n  constructor(url: string, headers?: { [key: string]: string }) {\n    this.url = url\n  }\n\n  public async send(data: string): Promise<any> {\n    const res = await fetch(this.url, {\n      method: \"POST\",\n      body: data\n    })\n\n    const { statusText, ok } = res\n\n    return ok ? Promise.resolve({}) : Promise.reject({ statusText })\n  }\n}\n", "import { Transport } from \"../interfaces/transport\"\nimport type https from \"https\"\nexport class NodeTransport implements Transport {\n  public url: string\n  private https: Promise<typeof https>\n\n  constructor(url: string) {\n    this.url = url\n    this.https = import(\"https\")\n  }\n\n  public send(data: string): Promise<any> {\n    const options = {\n      method: \"POST\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n        \"Content-Length\": data.length\n      }\n    }\n\n    return new Promise((resolve, reject) => {\n      this.https\n        .then(https => {\n          const req = https\n            .request(this.url, options, () => {})\n            .on(\"error\", error => reject(error))\n\n          req.write(data)\n          req.end()\n\n          resolve({})\n        })\n        .catch(reason => {\n          console.warn(\n            \"NodeTransport is being used, but the HTTPS module could not be imported. No data will be sent to AppSignal.\"\n          )\n          reject(reason)\n        })\n    })\n  }\n}\n", "import { urlEncode } from \"@appsignal/core\"\n\nimport { Environment } from \"./environment\"\nimport { Span } from \"./span\"\n\nimport { XDomainTransport } from \"./transports/xdomain\"\nimport { XHRTransport } from \"./transports/xhr\"\nimport { FetchTransport } from \"./transports/fetch\"\nimport { NodeTransport } from \"./transports/node\"\n\nimport { PushApiOptions } from \"./interfaces/options\"\nimport { Transport } from \"./interfaces/transport\"\n\nexport class PushApi {\n  private _uri: string\n  private _apiKey: string\n  private _clientVersion: string\n  private _transport: Transport\n\n  /**\n   * Creates a new instance of the Push API client.\n   *\n   * @constructor\n   *\n   * @param   {object}  options  An object of options to configure the Push API client\n   */\n  constructor(options: PushApiOptions) {\n    this._uri = options.uri || \"https://appsignal-endpoint.net/collect\"\n    this._apiKey = options.key\n    this._clientVersion = options.version\n\n    this._transport = this._createTransport(this._url())\n  }\n\n  /**\n   * Pushes a transaction to the Push API.\n   *\n   * @param   {Span}     span     A single API `Span`\n   *\n   * @return  {Promise<Span>}     A single API `Span`\n   */\n  public async push(span: Span): Promise<Span> {\n    await this._transport.send(span.toJSON())\n    return span\n  }\n\n  /**\n   * Creates an instance of a new `Transport` object. A `Transport` is a\n   * browser API that is able to sent HTTP requests to an endpoint. A\n   * transport is selected based on the best available in the current\n   * environment.\n   *\n   * @return  {ITransport}  A Transport object\n   */\n  private _createTransport(url: string): Transport {\n    switch (Environment.transport()) {\n      case \"XDomainRequest\":\n        return new XDomainTransport(url)\n      case \"XMLHttpRequest\":\n        return new XHRTransport(url)\n      case \"NodeHTTP\":\n        return new NodeTransport(url)\n      default:\n        return new FetchTransport(url)\n    }\n  }\n\n  /**\n   * Constructs a complete URL for accessing the Push API.\n   *\n   * @return  {string}  A Push API URL string\n   */\n  private _url(): string {\n    const auth = this._authorization()\n    return `${this._uri}?${urlEncode(auth)}`\n  }\n\n  /**\n   * Creates an object of API credentials.\n   *\n   * @return  {object}  API credentials\n   */\n  private _authorization(): object {\n    return {\n      api_key: this._apiKey,\n      version: this._clientVersion\n    }\n  }\n}\n", "import {\n  Serializable,\n  getStacktrace,\n  toHashMapString,\n  isError\n} from \"@appsignal/core\"\nimport type {\n  JSSpanData,\n  Breadcrumb,\n  HashMap,\n  HashMapValue\n} from \"@appsignal/types\"\n\nexport class Span extends Serializable<JSSpanData> {\n  constructor(span?: Partial<JSSpanData>) {\n    super({\n      timestamp: Math.round(new Date().getTime() / 1000),\n      namespace: \"frontend\",\n      error: {\n        name: \"NullError\",\n        message: \"No error has been set\",\n        backtrace: []\n      },\n      ...span\n    })\n  }\n\n  public setAction(name: string): this {\n    if (!name || typeof name !== \"string\") {\n      return this\n    }\n\n    this._data.action = name\n    return this\n  }\n\n  public setNamespace(name: string): this {\n    if (!name || typeof name !== \"string\") {\n      return this\n    }\n\n    this._data.namespace = name\n    return this\n  }\n\n  public setError<T extends Error>(error: Error | T): this {\n    if (!error || !isError(error)) return this\n\n    this._data.error = {\n      name: error.name || \"[unknown]\",\n      message: error.message,\n      backtrace: getStacktrace(error)\n    }\n\n    return this\n  }\n\n  public setTags(tags: HashMap<string>): this {\n    this._data.tags = { ...this._data.tags, ...toHashMapString(tags) }\n    return this\n  }\n\n  public setParams(params: HashMap<any>): this {\n    this._data.params = { ...this._data.params, ...params }\n    return this\n  }\n\n  public setBreadcrumbs(breadcrumbs: Breadcrumb[]): this {\n    this._data.breadcrumbs = breadcrumbs\n    return this\n  }\n}\n", "import { Span } from \"./span\"\n\nexport class Queue {\n  private _data: Span[]\n\n  constructor(data?: Span[]) {\n    this._data = data || []\n  }\n\n  public clear() {\n    this._data = []\n  }\n\n  public values(): Span[] {\n    return this._data\n  }\n\n  public push(item: Span | Span[]) {\n    return Array.isArray(item)\n      ? this._data.push(...item)\n      : this._data.push(item)\n  }\n\n  public *drain() {\n    while (this._data.length > 0) {\n      yield this._data.shift()\n    }\n  }\n}\n", "import { getGlobalObject } from \"@appsignal/core\"\n\nimport { Queue } from \"./queue\"\nimport { PushApi } from \"./api\"\n\ntype DispatcherOptions = { limit: number; initialDuration: number }\n\nexport class Dispatcher {\n  public options: DispatcherOptions\n\n  private _queue: Queue\n  private _api: PushApi\n  private _retries = 0\n  private _timerID = 0\n  private _duration = 0\n\n  constructor(\n    queue: Queue,\n    api: PushApi,\n    options?: Partial<DispatcherOptions>\n  ) {\n    this._api = api\n    this._queue = queue\n\n    this.options = {\n      limit: 5,\n      initialDuration: 1000,\n      ...options\n    }\n\n    this.reset()\n  }\n\n  public schedule(time = this._duration): number {\n    const globals = getGlobalObject<Window>()\n\n    // @TODO: make this configurable?\n    const BACKOFF_FACTOR = 1.3\n\n    const cb = async () => {\n      for (let span of this._queue.drain()) {\n        if (!span) return\n\n        try {\n          await this._api.push(span)\n        } catch (e) {\n          // when the first promise fails, reschedule a timer\n          const expDuration = Math.floor(Math.pow(time, BACKOFF_FACTOR))\n\n          this._retries = this._retries - 1\n\n          if (this._retries === 0) {\n            this.reset()\n          } else {\n            this._queue.push(span)\n            this._timerID = this.schedule(expDuration)\n          }\n\n          return\n        }\n      }\n\n      // reset once all promises are cleared\n      this.reset()\n    }\n\n    return globals.setTimeout(cb, time)\n  }\n\n  public reset() {\n    const { limit, initialDuration } = this.options\n    this._retries = limit\n    this._duration = initialDuration\n  }\n}\n", "/**\n * The AppSignal client.\n * @module Appsignal\n */\n\nimport { compose, toHashMap } from \"@appsignal/core\"\nimport type { Breadcrumb, JSClient, Hook, HashMap } from \"@appsignal/types\"\n\nimport { VERSION } from \"./version\"\nimport { PushApi } from \"./api\"\nimport { Environment } from \"./environment\"\nimport { Span } from \"./span\"\nimport { Queue } from \"./queue\"\nimport { Dispatcher } from \"./dispatcher\"\n\nimport { AppsignalOptions } from \"./interfaces/options\"\n\nexport default class Appsignal implements JSClient {\n  public VERSION = VERSION\n  public ignored: RegExp[] = []\n\n  private _dispatcher: Dispatcher\n  private _options: AppsignalOptions\n  private _api: PushApi\n  private _breadcrumbs: Breadcrumb[] = []\n\n  private _hooks = {\n    decorators: Array<Hook>(),\n    overrides: Array<Hook>()\n  }\n\n  private _env = Environment.serialize()\n  private _queue = new Queue([])\n\n  /**\n   * Creates a new instance of the AppSignal client.\n   *\n   * @constructor\n   *\n   * @param   {AppsignalOptions}  options        An object of options to configure the AppSignal client\n   */\n  constructor(options: AppsignalOptions) {\n    const { key = \"\", uri, revision, ignoreErrors } = options\n\n    // `revision` should be a `string`, but we attempt to\n    // normalise to one anyway\n    if (revision && typeof revision !== \"string\") {\n      options.revision = String(revision)\n    }\n\n    // starting with no key means nothing will be sent to the API\n    if (key === \"\") {\n      console.info(\"[APPSIGNAL]: Started in development mode.\")\n    }\n\n    this._api = new PushApi({\n      key,\n      uri,\n      version: this.VERSION\n    })\n\n    // ignored exceptions are checked against the `message`\n    // property of a given `Error`\n    if (ignoreErrors && Array.isArray(ignoreErrors)) {\n      this.ignored = ignoreErrors\n    }\n\n    this._dispatcher = new Dispatcher(this._queue, this._api)\n\n    this._options = options\n  }\n\n  /**\n   * Records and sends a browser `Error` to AppSignal.\n   *\n   * @param   {Error}             error          A JavaScript Error object\n   * @param   {Function | void}   fn             Optional callback function to modify span before it's sent.\n   *\n   * @return  {Promise<Span> | void}             An API response, or `void` if `Promise` is unsupported.\n   */\n  public send<T>(error: Error, fn?: (span: Span) => T): Promise<Span> | void\n\n  /**\n   * Records and sends a browser `Error` to AppSignal.\n   *\n   * @param   {Error}             error          A JavaScript Error object\n   * @param   {object}            tags           An key, value object of tags\n   * @param   {string}            namespace      An optional namespace name\n   *\n   * @return  {Promise<Span> | void}             An API response, or `void` if `Promise` is unsupported.\n   */\n  public send(\n    error: Error,\n    tags?: object,\n    namespace?: string\n  ): Promise<Span> | void\n\n  /**\n   * Records and sends an Appsignal `Span` object to AppSignal.\n   *\n   * @param   {Error}             error          A JavaScript Error object\n   *\n   * @return  {Promise<Span>}                    An API response, or `void` if `Promise` is unsupported.\n   */\n  public send(span: Span): Promise<Span> | void\n\n  /**\n   *\n   * @param   {Error | Span}      data           A JavaScript Error or Appsignal Span object\n   * @param   {object | Function} tagsOrFn       An key-value object of tags or a callback function to customize the span before it is sent.\n   * @param   {string}            namespace      DEPRECATED: An optional namespace name.\n   *\n   * @return  {Promise<Span> | void}             An API response, or `void` if `Promise` is unsupported.\n   */\n  public send<T>(\n    data: Error | Span,\n    tagsOrFn?: object | ((span: Span) => T),\n    namespace?: string\n  ): Promise<any> | void {\n    if (!(data instanceof Error) && !(data instanceof Span)) {\n      // @TODO: route this through a central logger\n      console.error(\n        \"[APPSIGNAL]: Can't send error, given error is not a valid type\"\n      )\n      return\n    }\n\n    // handle user defined ignores\n    if (this.ignored.length !== 0) {\n      if (\n        data instanceof Error &&\n        this.ignored.some(el => el.test(data.message))\n      ) {\n        console.warn(`[APPSIGNAL]: Ignored an error: ${data.message}`)\n        return\n      }\n\n      if (data instanceof Span) {\n        const { error } = data.serialize()\n\n        // using the bang operator here as tsc doesnt recognise that we are\n        // checking for the value to be set as the first predicate\n        if (error.message && this.ignored.some(el => el.test(error.message!))) {\n          console.warn(`[APPSIGNAL]: Ignored a span: ${error.message}`)\n          return\n        }\n      }\n    }\n\n    // a \"span\" currently refers to a fixed point in time, as opposed to\n    // a range or length in time. this may change in future!\n    const span = data instanceof Span ? data : this._createSpanFromError(data)\n\n    // A Span can be \"decorated\" with metadata after it has been created,\n    // but before it is sent to the API and before metadata provided\n    // as arguments is added\n    if (this._hooks.decorators.length > 0) {\n      compose(...this._hooks.decorators)(span)\n    }\n\n    if (tagsOrFn) {\n      if (typeof tagsOrFn === \"function\") {\n        const callback = tagsOrFn\n        callback(span)\n      } else {\n        console.warn(\n          \"[APPSIGNAL]: DEPRECATED: Calling the `send`/`sendError` function with a tags object is deprecated. Use the callback argument instead.\"\n        )\n        const tags = (toHashMap(tagsOrFn) || {}) as HashMap<string>\n        span.setTags(tags)\n      }\n    }\n    if (namespace) {\n      console.warn(\n        \"[APPSIGNAL]: DEPRECATED: Calling the `send`/`sendError` function with a namespace is deprecated. Use the callback argument instead.\"\n      )\n      span.setNamespace(namespace)\n    }\n\n    if (this._breadcrumbs.length > 0) span.setBreadcrumbs(this._breadcrumbs)\n\n    // A Span can be \"overridden\" with metadata after it has been created,\n    // but before it is sent to the API and after metadata provided\n    // as arguments is added\n    if (this._hooks.overrides.length > 0) {\n      compose(...this._hooks.overrides)(span)\n    }\n\n    if (Environment.supportsPromises()) {\n      // clear breadcrumbs as they are now loaded into the span,\n      // and we are sure that it's possible to send them\n      this._breadcrumbs = []\n\n      // if no key is supplied, we just output the span to the console\n      // and rethrow the error\n      if (!this._options.key) {\n        // @TODO: route this through a central logger\n        console.warn(\n          \"[APPSIGNAL]: Span not sent because we're in development mode:\",\n          span\n        )\n\n        if (data instanceof Error) {\n          throw data\n        }\n      } else {\n        // attempt to push to the API\n        return this._api.push(span).catch(() => {\n          this._queue.push(span)\n\n          // schedule on next tick\n          setTimeout(() => this._dispatcher.schedule(), 0)\n        })\n      }\n    } else {\n      // @TODO: route this through a central logger\n      console.error(\n        \"[APPSIGNAL]: Error not sent. A Promise polyfill is required.\"\n      )\n      return\n    }\n  }\n\n  sendError<T>(error: Error): Promise<Span> | void\n  sendError<T>(error: Error, callback: (span: Span) => T): Promise<Span> | void\n  sendError<T>(\n    error: Error,\n    tags?: object,\n    namespace?: string\n  ): Promise<Span> | void\n\n  /**\n   * Records and sends a browser `Error` to AppSignal. An alias to `#send()`\n   * to maintain compatibility.\n   *\n   * @param   {Error}             error          A JavaScript Error object\n   * @param   {object | Function} tagsOrFn       An key-value object of tags or callback function to customize the span before it is sent.\n   * @param   {string}            namespace      DEPRECATED: An optional namespace name\n   *\n   * @return  {Promise<Span> | void}             An API response, or `void` if `Promise` is unsupported.\n   */\n  public sendError<T>(\n    error: Error,\n    tagsOrFn?: object | ((span: Span) => T),\n    namespace?: string\n  ): Promise<Span> | void {\n    return this.send(error, tagsOrFn, namespace)\n  }\n\n  /**\n   * Registers and installs a valid plugin.\n   *\n   * A plugin is typically a function that can be used to provide a\n   * reference to the `Appsignal` instance via returning a function\n   * that can be bound to `this`.\n   *\n   * @param   {Plugin}            plugin         A JavaScript Error object\n   *\n   * @return  {void}\n   */\n  public use(plugin: Function): void {\n    plugin.call(this)\n  }\n\n  /**\n   * Creates a new `Span`, augmented with the current environment.\n   *\n   * @param   {Function | void}   fn         Optional function to modify span\n   *\n   * @return  {Span}              An AppSignal `Span` object\n   */\n  public createSpan(fn?: (span: Span) => void): Span {\n    const { revision = \"\", namespace } = this._options\n\n    const span = new Span({\n      environment: this._env,\n      revision\n    })\n\n    // set default namespace from constructor if none is set\n    if (namespace) span.setNamespace(namespace)\n\n    if (fn && typeof fn === \"function\") fn(span)\n\n    return span\n  }\n\n  /**\n   * Wraps and catches errors within a given function. If the function throws an\n   * error, a rejected `Promise` will be returned and the error thrown will be\n   * logged to AppSignal.\n   */\n  public async wrap<T>(fn: () => T, callbackFn?: (span: Span) => T): Promise<T>\n\n  /**\n   * Wraps and catches errors within a given function. If the function throws an\n   * error, a rejected `Promise` will be returned and the error thrown will be\n   * logged to AppSignal.\n   */\n  public async wrap<T>(\n    fn: () => T,\n    tags?: object,\n    namespace?: string\n  ): Promise<T>\n\n  /**\n   * Wraps and catches errors within a given function. If the function throws an\n   * error, a rejected `Promise` will be returned and the error thrown will be\n   * logged to AppSignal.\n   *\n   * @param   {Function}          fn             A function to wrap\n   * @param   {object | Function} tagsOrFn       An key-value object of tags or a callback function to customize the span before it is sent.\n   * @param   {string}            namespace      DEPRECATED: An optional namespace name\n   *\n   * @return  {Promise<any>}      A Promise containing the return value of the function, or a `Span` if an error was thrown.\n   */\n  public async wrap<T>(\n    fn: () => T,\n    tagsOrFn?: object | ((span: Span) => T),\n    namespace?: string\n  ): Promise<T> {\n    try {\n      return await fn()\n    } catch (e) {\n      await this.sendError(e, tagsOrFn, namespace)\n      return Promise.reject(e)\n    }\n  }\n\n  /**\n   * Registers a span decorator to be applied every time a Span\n   * is sent to the Push API\n   *\n   * @param   {Function}  decorator  A decorator function, returning `Span`\n   *\n   * @return  {void}\n   */\n  public addDecorator<T extends Hook>(decorator: T): void {\n    this._hooks.decorators.push(decorator)\n  }\n\n  /**\n   * Registers a span override to be applied every time a Span\n   * is sent to the Push API\n   *\n   * @param   {Function}  override  An override function, returning `Span`\n   *\n   * @return  {void}\n   */\n  public addOverride<T extends Hook>(override: T): void {\n    this._hooks.overrides.push(override)\n  }\n\n  /**\n   * Sends a demonstration error to AppSignal.\n   *\n   * @return  {void}\n   */\n  public demo(): void {\n    const span = this._createSpanFromError(\n      new Error(\n        \"Hello world! This is an error used for demonstration purposes.\"\n      )\n    )\n\n    span\n      .setAction(\"TestAction\")\n      .setParams({\n        path: \"/hello\",\n        method: \"GET\"\n      })\n      .setTags({\n        demo_sample: \"true\"\n      })\n\n    this.send(span)\n  }\n\n  /**\n   * Adds a breadcrumb.\n   *\n   * @param   {Breadcrumb}  breadcrumb  A valid breadcrumb\n   *\n   * @return  {void}\n   */\n  public addBreadcrumb(breadcrumb: Omit<Breadcrumb, \"timestamp\">): void {\n    const crumb: Breadcrumb = {\n      timestamp: Math.round(new Date().getTime() / 1000),\n      ...breadcrumb,\n      metadata: toHashMap(breadcrumb.metadata)\n    }\n\n    if (!crumb.category) {\n      console.warn(\"[APPSIGNAL]: Breadcrumb not added. `category` is missing.\")\n      return\n    }\n\n    if (!crumb.action) {\n      console.warn(\"[APPSIGNAL]: Breadcrumb not added. `action` is missing.\")\n      return\n    }\n\n    if (this._breadcrumbs.length === 20) {\n      this._breadcrumbs.pop()\n    }\n\n    this._breadcrumbs.unshift(crumb)\n  }\n\n  /**\n   * Creates a valid AppSignal `Span` from a JavaScript `Error`\n   * object.\n   *\n   * @param   {Error}  error  A JavaScript error\n   *\n   * @return  {Span}         An AppSignal event\n   */\n  private _createSpanFromError(error: Error): Span {\n    const event = this.createSpan()\n    event.setError(error)\n\n    return event\n  }\n}\n", "import type { JSClient } from \"@appsignal/types\"\nimport { isError } from \"@appsignal/core\"\n\nfunction windowEventsPlugin(options?: { [key: string]: any }) {\n  const ctx = window as Window\n\n  const opts = {\n    onerror: true,\n    onunhandledrejection: true,\n    ...options\n  }\n\n  return function (this: JSClient) {\n    const self = this\n\n    const prev = {\n      onError: ctx.onerror,\n      unhandledRejection: ctx.onunhandledrejection\n    }\n\n    function _onErrorHandler(\n      this: WindowEventHandlers,\n      event: Event | string,\n      source?: string,\n      lineno?: number,\n      colno?: number,\n      error?: Error\n    ): void {\n      const span = self.createSpan()\n\n      // handles \"Script error.\" message in some browsers when script is loaded\n      // cross origin.\n      // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#Notes\n      if (\n        typeof event === \"string\" &&\n        lineno === 0 &&\n        /Script error\\.?/.test(event)\n      ) {\n        console.warn(\n          \"[APPSIGNAL]: Cross-domain or eval script error detected, error ignored\"\n        )\n      } else {\n        if (error) {\n          span.setError(error)\n        } else {\n          // handle browsers that don't supply an `error` argument\n          // or don't return a stacktrace\n          span.setError({\n            name: \"Error\",\n            // `event` shoiuld be the message in most browsers\n            message:\n              typeof event === \"string\"\n                ? event\n                : 'An HTML onerror=\"\" handler failed to execute',\n            stack: `at ${source}:${lineno}${colno ? `:${colno}` : \"\"}`\n          })\n        }\n\n        self.send(span)\n      }\n\n      if (typeof prev.onError === \"function\") {\n        prev.onError.apply(this, arguments as any)\n      }\n    }\n\n    function _onUnhandledRejectionHandler(\n      this: WindowEventHandlers,\n      event: PromiseRejectionEvent\n    ): void {\n      const span = self.createSpan()\n\n      let error: Error\n\n      if (event && event.reason && isError(event.reason)) {\n        error = event.reason\n      } else {\n        error = {\n          name: \"UnhandledPromiseRejectionError\",\n          message: _reasonFromEvent(event)\n        }\n      }\n\n      span.setError(error)\n\n      self.send(span)\n\n      if (typeof prev.unhandledRejection === \"function\") {\n        prev.unhandledRejection.apply(this, arguments as any)\n      }\n    }\n\n    if (opts.onerror) {\n      ctx.onerror = _onErrorHandler\n    }\n\n    if (opts.onunhandledrejection) {\n      ctx.onunhandledrejection = _onUnhandledRejectionHandler\n    }\n  }\n\n  function _reasonFromEvent(event: PromiseRejectionEvent): string {\n    if (!event || !event.reason) {\n      return \"\"\n    }\n\n    if (typeof event.reason === \"string\") {\n      return event.reason\n    }\n\n    return JSON.stringify(event.reason, circularReplacer())\n  }\n\n  function circularReplacer() {\n    const seenValue: any[] = []\n    const seenKey: string[] = []\n    return (key: string, value: any) => {\n      if (typeof value === \"object\" && value !== null) {\n        const i = seenValue.indexOf(value)\n        if (i !== -1) {\n          return `[cyclic value: ${seenKey[i] || \"root object\"}]`\n        } else {\n          seenValue.push(value)\n          seenKey.push(key)\n        }\n      }\n\n      return value\n    }\n  }\n}\n\nexport const plugin = windowEventsPlugin\n", "// https://github.com/gka/d3-jetpack/blob/main/src/wordwrap.js\n\nimport * as d3 from 'd3';\n\n// while this might not be reprentative for all fonts, it is\n// still better than assuming every character has the same width\n// (set monospace=true if you want to bypass this)\nvar CHAR_W = {\n    A:7,a:7,B:8,b:7,C:8,c:6,D:9,d:7,E:7,e:7,F:7,f:4,G:9,g:7,H:9,h:7,I:3,i:3,J:5,j:3,K:8,k:6,L:7,l:3,M:11,\n    m:11,N:9,n:7,O:9,o:7,P:8,p:7,Q:9,q:7,R:8,r:4,S:8,s:6,T:7,t:4,U:9,u:7,V:7,v:6,W:11,w:9,X:7,x:6,Y:7,y:6,Z:7,z:5,\n    '.':2,',':2,':':2,';':2\n};\n\nexport default function(line, maxCharactersPerLine, minCharactersPerLine, monospace) {\n    var l, lines = [], w = [], words = [], w1, maxChars, minChars, maxLineW, minLineW;\n    w1 = line.split(' ');\n    w1.forEach(function(s, i) {\n        var w2 = s.split('-');\n        var lw = (i < w1.length - 1 ? ' ' : '');\n        if (w2.length > 1) {\n            w2.forEach(function(t, j) {\n                w.push(t + (j < w2.length - 1 ? '-' : lw));\n            });\n        } else {\n            w.push(s + lw);\n        }\n    });\n    maxChars = maxCharactersPerLine || 40;\n    minChars = minCharactersPerLine || Math.max(3, Math.min(maxChars * 0.5, 0.75 * w.map(word_len).sort(num_asc)[Math.round(w.length / 2)]));\n    maxLineW = maxChars * CHAR_W.a;\n    minLineW = minChars * CHAR_W.a;\n    l = 0;\n    w.forEach(function(d) {\n        var ww = d3.sum(d.split('').map(char_w));\n        if (l + ww > maxLineW && l > minLineW) {\n            lines.push(words.join(''));\n            words.length = 0;\n            l = 0;\n        }\n        l += ww;\n        return words.push(d);\n    });\n    if (words.length) {\n        lines.push(words.join(''));\n    }\n    return lines.filter(function(d) {\n        return d !== '';\n    });\n    function char_w(c) { return !monospace && CHAR_W[c] || CHAR_W.a; }\n    function word_len(d) { return d.length; }\n    function num_asc(a, b) { return a - b; }\n}\n", "// https://github.com/gka/d3-jetpack/blob/main/src/tspans.js\n\nexport default function(lines, lh) {\n  return this.selectAll('tspan')\n      .data(function(d, i) {\n        return (typeof(lines) === 'function' ? lines.call(this, d, i) : lines)\n          .map(function(l) {\n            return { line: l, parent: d };\n          });\n      })\n      .enter()\n    .append('tspan')\n      .text(function(d) { return d.line; })\n      .attr('x', 0)\n      .attr('dy', function(d, i) { return i ? (typeof(lh) === 'function' ? lh.call(this, d.parent, d.line, i) : lh) || 15 : 0; });\n}\n", "export default function divide(a, b, def = 0) {\n  if (b === 0) return def\n  return a / b\n}\n", "import 'velocity-animate'\n\n$(document).on('turbolinks:load', function() {\n\n\t$('.show_login_box').click(function(e) {\n\t\te.preventDefault();\n\t\t$('.password_recovery_box').addClass(\"hidden\");\n\t\t$('.login_box').removeClass('hidden').velocity(\"transition.slideLeftIn\");\n\t});\n\n\t$('.show_password_recovery_box').click(function(e) {\n\t\te.preventDefault();\n\t\t$('.login_box').addClass(\"hidden\");\n\t\t$('.password_recovery_box').removeClass('hidden').velocity(\"transition.slideLeftIn\");\n\t});\n\n});\n", "import 'velocity-animate'\n\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n  menuResponsive()\n})\n\nfunction menuResponsive() {\n  $('.nav_control, .close').click(function(e) {\n    e.preventDefault();\n\n    $('body').velocity('scroll', {\n      duration: 500,\n      offset: -40,\n      easing: 'ease-in-out'\n    });\n\n    // Style itself\n    var $selector;\n    if ($(this).hasClass('nav_control')) {\n      $selector = $('.nav_control');\n    } else {\n      $selector = $('.close');\n    }\n\n    $selector.find('i').toggleClass('fa-bars fa-times');\n    $selector.parent().toggleClass('hamburger_container--transparent');\n\n    $('.js-mobile-header').toggle();\n    $('.js-mobile-nav').toggle();\n    $('.js-mobile-buttons').toggle();\n  });\n\n  $('.site_header_logo .search_icon').click(function(e) {\n    e.preventDefault();\n    $('.search_control').velocity(\"fadeIn\", {\n      complete: function (element) {\n        $(element[0]).find('input').removeClass('hidden').focus();\n      }\n    });\n  });\n\n  $('.site_header_logo .search_control input').on('focusout', function() {\n    $('.search_control').velocity(\"fadeOut\");\n  });\n\n  $('.follow_process').on('click', function() {\n    $(this)\n      .toggleClass('checked')\n      .find('.fa')\n      .toggleClass('fa-rss fa-star')\n      .velocity({ translateY: -5 }, { duration: 100, loop: 2 })\n      .next('span')\n      .toggleText('Sigue este proceso', '\u00A1Proceso seguido!');\n  });\n\n  $('.scroll-up').on('click', function() {\n    $('body').velocity('scroll', {\n      duration: 500,\n      offset: -40,\n      easing: 'ease-in-out'\n    });\n  });\n\n  $('.js-submenu-toggle').on('click', function() {\n    $('.js-slider:visible').toggleClass('is-open');\n  });\n\n  $('.js-item-toggle').on('click', function() {\n    var parent = $(this).parent();\n\n    // If open same menu-item, just close it.\n    if (parent.next().find('.js-slider').hasClass('is-open')) {\n      parent.next().find('.js-slider').removeClass('is-open');\n      return;\n    }\n\n    // Closes all menus\n    parent.closest('.js-mobile-nav').find('.is-open').removeClass('is-open');\n\n    // Delayed to get accordion effect\n    setTimeout(function () {\n      // Open sibling menu\n      parent.next().find('.js-slider').toggleClass('is-open');\n    }, 200);\n\n    // REVIEW:\n    // if ($(this).prev().find('a').attr('href') === \"/participacion\") {\n    //   $('.js-secondary_nav').addClass('is-open');\n    // } else {\n    //   $('.js-secondary_nav').removeClass('is-open');\n    // }\n  });\n}\n", "import { GOBIERTO_DASHBOARDS } from '../../../lib/events';\nimport 'magnific-popup';\n\nfunction addMagnificPopups() {\n  // flag storing whether the modal trigger is a dashboard initializer or not\n  let isDashboardTrigger = false\n\n  $(\".open_remote_modal\").magnificPopup({\n    type: \"ajax\",\n    removalDelay: 300,\n    mainClass: \"mfp-move-horizontal\",\n    // closeOnContentClick: !isDashboardTrigger,\n    // closeOnBgClick: !isDashboardTrigger,\n    callbacks: {\n      change: function({ el }) {\n        const { dataset } = el[0] || {} // 0 is a jQuery value, not array index\n\n        // if the modal trigger (.open_remote_modal) contains data-dashboards-maker directive\n        // then it activates the trigger. Once the DOM (the modal content) has been loaded, ajaxContentAdded will dispatch the event.\n        // it must be done in this callback, due to next one does not provide access to \"el\" object\n        isDashboardTrigger = (!!dataset?.dashboardsMaker)\n      },\n      ajaxContentAdded: function() {\n        // This conditionals are always true \u00AC\u00AC\n        if (window.GobiertoAdmin && window.GobiertoAdmin.process_stages_controller) {\n          window.GobiertoAdmin.process_stages_controller.form();\n        }\n        if (window.GobiertoAdmin && window.GobiertoAdmin.globalized_forms_component) {\n          window.GobiertoAdmin.globalized_forms_component.handleGlobalizedForm();\n        }\n        if (window.GobiertoAdmin && window.GobiertoAdmin.gobierto_citizens_charters_editions_intervals_controller) {\n          window.GobiertoAdmin.gobierto_citizens_charters_editions_intervals_controller.handleForm();\n        }\n        if (window.GobiertoAdmin && window.GobiertoAdmin.admin_groups_admins_controller) {\n          window.GobiertoAdmin.admin_groups_admins_controller.index();\n        }\n        if (window.GobiertoAdmin && window.GobiertoAdmin.terms_controller) {\n          window.GobiertoAdmin.terms_controller.form()\n        }\n\n        // autofocus on the first modal input field\n        $(\".modal .form_item input[type=text]:visible\").first().focus()\n\n        if (isDashboardTrigger) {\n          const event = new Event(GOBIERTO_DASHBOARDS.CREATE)\n          document.dispatchEvent(event)\n        }\n    },\n    }\n  });\n}\n\n$(document).on(\"turbolinks:load ajax:complete ajaxSuccess\", addMagnificPopups);\n", "export const GOBIERTO_BUDGETS = {\n  LOADED: \"chart-loaded\"\n}\n\nexport const GOBIERTO_DASHBOARDS = {\n  CREATE: \"create-dashboard-maker\",\n  LOAD: \"load-dashboard-viewer\",\n  LOADED: \"dashboard-viewer-loaded\",\n  SELECTED: \"dashboard-viewer-selected\"\n}", "import 'tipsy-1a';\n\n/* Toggle text method */\n$.fn.extend({\n  toggleText: function(a, b) {\n    return this.text(this.text() == b ? a : b);\n  }\n});\n\n$(document).on(\"ajax:complete ajaxSuccess\", function() {\n  $(\".tipsit\").tipsy({ fade: false, gravity: \"s\", html: true });\n  $(\".tipsit-n\").tipsy({ fade: false, gravity: \"n\", html: true });\n  $(\".tipsit-w\").tipsy({ fade: false, gravity: \"w\", html: true });\n  $(\".tipsit-e\").tipsy({ fade: false, gravity: \"e\", html: true });\n  $(\".tipsit-treemap\").tipsy({ fade: false, gravity: $.fn.tipsy.autoNS, html: true });\n});\n\n$(document).on(\"turbolinks:load\", function() {\n  // Include here common callbacks and behaviours\n\n  // Tabs navigation\n  $(\"[data-tab-target]\").on(\"click\", function(e) {\n    e.preventDefault();\n    var target = $(this).data(\"tab-target\");\n    var scope = $(\"[data-tab-scope]\").length ? $(this).closest(\"[data-tab-scope]\") : $(\"body\");\n\n    scope\n      .find(\"[data-tab-target]\")\n      .parent()\n      .removeClass(\"active\");\n    scope\n      .find('[data-tab-target=\"' + target + '\"]')\n      .parent()\n      .addClass(\"active\");\n    scope.find(\"[data-tab]\").removeClass(\"active\");\n    scope.find('[data-tab=\"' + target + '\"]').addClass(\"active\");\n  });\n\n  function toggleTarget($this) {\n    var $target = $('[data-toggle-target=\"' + $this.data(\"toggle\") + '\"]');\n    $this.is(\":checked\") ? $target.show() : $target.hide();\n  }\n\n  $(\"[data-toggle-target]\").hide();\n  $(\"[data-toggle]\").each(function() {\n    toggleTarget($(this));\n  });\n  $(\"[data-toggle]\").click(function() {\n    toggleTarget($(this));\n  });\n});\n", "// tipsy, facebook style tooltips for jquery\n// version 1.0.0a\n// (c) 2008-2010 jason frame [jason@onehackoranother.com]\n// released under the MIT license\n\n(function($) {\n    \n    function maybeCall(thing, ctx) {\n        return (typeof thing == 'function') ? (thing.call(ctx)) : thing;\n    };\n    \n    function isElementInDOM(ele) {\n      while (ele = ele.parentNode) {\n        if (ele == document) return true;\n      }\n      return false;\n    };\n    \n    function Tipsy(element, options) {\n        this.$element = $(element);\n        this.options = options;\n        this.enabled = true;\n        this.fixTitle();\n    };\n    \n    Tipsy.prototype = {\n        show: function() {\n            var title = this.getTitle();\n            if (title && this.enabled) {\n                var $tip = this.tip();\n                \n                $tip.find('.tipsy-inner')[this.options.html ? 'html' : 'text'](title);\n                $tip[0].className = 'tipsy'; // reset classname in case of dynamic gravity\n                $tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).prependTo(document.body);\n                \n                var pos = $.extend({}, this.$element.offset(), {\n                    width: this.$element[0].offsetWidth,\n                    height: this.$element[0].offsetHeight\n                });\n                \n                var actualWidth = $tip[0].offsetWidth,\n                    actualHeight = $tip[0].offsetHeight,\n                    gravity = maybeCall(this.options.gravity, this.$element[0]);\n                \n                var tp;\n                switch (gravity.charAt(0)) {\n                    case 'n':\n                        tp = {top: pos.top + pos.height + this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2};\n                        break;\n                    case 's':\n                        tp = {top: pos.top - actualHeight - this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2};\n                        break;\n                    case 'e':\n                        tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth - this.options.offset};\n                        break;\n                    case 'w':\n                        tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + this.options.offset};\n                        break;\n                }\n                \n                if (gravity.length == 2) {\n                    if (gravity.charAt(1) == 'w') {\n                        tp.left = pos.left + pos.width / 2 - 15;\n                    } else {\n                        tp.left = pos.left + pos.width / 2 - actualWidth + 15;\n                    }\n                }\n                \n                $tip.css(tp).addClass('tipsy-' + gravity);\n                $tip.find('.tipsy-arrow')[0].className = 'tipsy-arrow tipsy-arrow-' + gravity.charAt(0);\n                if (this.options.className) {\n                    $tip.addClass(maybeCall(this.options.className, this.$element[0]));\n                }\n                \n                if (this.options.fade) {\n                    $tip.stop().css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: this.options.opacity});\n                } else {\n                    $tip.css({visibility: 'visible', opacity: this.options.opacity});\n                }\n            }\n        },\n        \n        hide: function() {\n            if (this.options.fade) {\n                this.tip().stop().fadeOut(function() { $(this).remove(); });\n            } else {\n                this.tip().remove();\n            }\n        },\n        \n        fixTitle: function() {\n            var $e = this.$element;\n            if ($e.attr('title') || typeof($e.attr('original-title')) != 'string') {\n                $e.attr('original-title', $e.attr('title') || '').removeAttr('title');\n            }\n        },\n        \n        getTitle: function() {\n            var title, $e = this.$element, o = this.options;\n            this.fixTitle();\n            var title, o = this.options;\n            if (typeof o.title == 'string') {\n                title = $e.attr(o.title == 'title' ? 'original-title' : o.title);\n            } else if (typeof o.title == 'function') {\n                title = o.title.call($e[0]);\n            }\n            title = ('' + title).replace(/(^\\s*|\\s*$)/, \"\");\n            return title || o.fallback;\n        },\n        \n        tip: function() {\n            if (!this.$tip) {\n                this.$tip = $('<div class=\"tipsy\"></div>').html('<div class=\"tipsy-arrow\"></div><div class=\"tipsy-inner\"></div>');\n                this.$tip.data('tipsy-pointee', this.$element[0]);\n            }\n            return this.$tip;\n        },\n        \n        validate: function() {\n            if (!this.$element[0].parentNode) {\n                this.hide();\n                this.$element = null;\n                this.options = null;\n            }\n        },\n        \n        enable: function() { this.enabled = true; },\n        disable: function() { this.enabled = false; },\n        toggleEnabled: function() { this.enabled = !this.enabled; }\n    };\n    \n    $.fn.tipsy = function(options) {\n        \n        if (options === true) {\n            return this.data('tipsy');\n        } else if (typeof options == 'string') {\n            var tipsy = this.data('tipsy');\n            if (tipsy) tipsy[options]();\n            return this;\n        }\n        \n        options = $.extend({}, $.fn.tipsy.defaults, options);\n        \n        function get(ele) {\n            var tipsy = $.data(ele, 'tipsy');\n            if (!tipsy) {\n                tipsy = new Tipsy(ele, $.fn.tipsy.elementOptions(ele, options));\n                $.data(ele, 'tipsy', tipsy);\n            }\n            return tipsy;\n        }\n        \n        function enter() {\n            var tipsy = get(this);\n            tipsy.hoverState = 'in';\n            if (options.delayIn == 0) {\n                tipsy.show();\n            } else {\n                tipsy.fixTitle();\n                setTimeout(function() { if (tipsy.hoverState == 'in') tipsy.show(); }, options.delayIn);\n            }\n        };\n        \n        function leave() {\n            var tipsy = get(this);\n            tipsy.hoverState = 'out';\n            if (options.delayOut == 0) {\n                tipsy.hide();\n            } else {\n                setTimeout(function() { if (tipsy.hoverState == 'out') tipsy.hide(); }, options.delayOut);\n            }\n        };\n        \n        if (!options.live) this.each(function() { get(this); });\n        \n        if (options.trigger != 'manual') {\n            var binder   = options.live ? 'live' : 'bind',\n                eventIn  = options.trigger == 'hover' ? 'mouseenter' : 'focus',\n                eventOut = options.trigger == 'hover' ? 'mouseleave' : 'blur';\n            this[binder](eventIn, enter)[binder](eventOut, leave);\n        }\n        \n        return this;\n        \n    };\n    \n    $.fn.tipsy.defaults = {\n        className: null,\n        delayIn: 0,\n        delayOut: 0,\n        fade: false,\n        fallback: '',\n        gravity: 'n',\n        html: false,\n        live: false,\n        offset: 0,\n        opacity: 0.8,\n        title: 'title',\n        trigger: 'hover'\n    };\n    \n    $.fn.tipsy.revalidate = function() {\n      $('.tipsy').each(function() {\n        var pointee = $.data(this, 'tipsy-pointee');\n        if (!pointee || !isElementInDOM(pointee)) {\n          $(this).remove();\n        }\n      });\n    };\n    \n    // Overwrite this method to provide options on a per-element basis.\n    // For example, you could store the gravity in a 'tipsy-gravity' attribute:\n    // return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' });\n    // (remember - do not modify 'options' in place!)\n    $.fn.tipsy.elementOptions = function(ele, options) {\n        return $.metadata ? $.extend({}, options, $(ele).metadata()) : options;\n    };\n    \n    $.fn.tipsy.autoNS = function() {\n        return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n';\n    };\n    \n    $.fn.tipsy.autoWE = function() {\n        return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w';\n    };\n    \n    /**\n     * yields a closure of the supplied parameters, producing a function that takes\n     * no arguments and is suitable for use as an autogravity function like so:\n     *\n     * @param margin (int) - distance from the viewable region edge that an\n     *        element should be before setting its tooltip's gravity to be away\n     *        from that edge.\n     * @param prefer (string, e.g. 'n', 'sw', 'w') - the direction to prefer\n     *        if there are no viewable region edges effecting the tooltip's\n     *        gravity. It will try to vary from this minimally, for example,\n     *        if 'sw' is preferred and an element is near the right viewable \n     *        region edge, but not the top edge, it will set the gravity for\n     *        that element's tooltip to be 'se', preserving the southern\n     *        component.\n     */\n     $.fn.tipsy.autoBounds = function(margin, prefer) {\n\t\treturn function() {\n\t\t\tvar dir = {ns: prefer[0], ew: (prefer.length > 1 ? prefer[1] : false)},\n\t\t\t    boundTop = $(document).scrollTop() + margin,\n\t\t\t    boundLeft = $(document).scrollLeft() + margin,\n\t\t\t    $this = $(this);\n\n\t\t\tif ($this.offset().top < boundTop) dir.ns = 'n';\n\t\t\tif ($this.offset().left < boundLeft) dir.ew = 'w';\n\t\t\tif ($(window).width() + $(document).scrollLeft() - $this.offset().left < margin) dir.ew = 'e';\n\t\t\tif ($(window).height() + $(document).scrollTop() - $this.offset().top < margin) dir.ns = 's';\n\n\t\t\treturn dir.ns + (dir.ew ? dir.ew : '');\n\t\t}\n\t};\n    \n})(jQuery);\n", "$(document).on('turbolinks:load', function() {\n  (function () {\n    var tablist = document.querySelectorAll('[role=\"tablist\"]')[0];\n    var tabs;\n    // eslint-disable-next-line\n    var panels;\n\n    generateArrays();\n\n    function generateArrays () {\n      tabs = document.querySelectorAll('[role=\"tab\"]');\n      panels = document.querySelectorAll('[role=\"tabpanel\"]');\n    }\n\n    // For easy reference\n    var keys = {\n      end: 35,\n      home: 36,\n      left: 37,\n      up: 38,\n      right: 39,\n      down: 40,\n      enter: 13,\n      space: 32\n    };\n\n    // Add or substract depenign on key pressed\n    var direction = {\n      37: -1,\n      38: -1,\n      39: 1,\n      40: 1\n    };\n\n    // Bind listeners\n    for (var i = 0; i < tabs.length; ++i) {\n      addListeners(i);\n    }\n\n    function addListeners (index) {\n      tabs[index].addEventListener('click', clickEventListener);\n      tabs[index].addEventListener('keydown', keydownEventListener);\n      tabs[index].addEventListener('keyup', keyupEventListener);\n\n      // Build an array with all tabs (<button>s) in it\n      tabs[index].index = index;\n    }\n\n    // When a tab is clicked, activateTab is fired to activate it\n    function clickEventListener (event) {\n      var tab = event.target;\n      activateTab(tab, false);\n    }\n\n    // Handle keydown on tabs\n    function keydownEventListener (event) {\n      var key = event.keyCode;\n\n      switch (key) {\n        case keys.end:\n          event.preventDefault();\n          // Activate last tab\n          focusLastTab();\n          break;\n        case keys.home:\n          event.preventDefault();\n          // Activate first tab\n          focusFirstTab();\n          break;\n\n        // Up and down are in keydown\n        // because we need to prevent page scroll >:)\n        case keys.up:\n        case keys.down:\n          determineOrientation(event);\n          break;\n      }\n    }\n\n    // Handle keyup on tabs\n    function keyupEventListener (event) {\n      var key = event.keyCode;\n\n      switch (key) {\n        case keys.left:\n        case keys.right:\n          determineOrientation(event);\n          break;\n        case keys.enter:\n        case keys.space:\n          activateTab(event.target);\n          break;\n      }\n    }\n\n    // When a tablist\u2019s aria-orientation is set to vertical,\n    // only up and down arrow should function.\n    // In all other cases only left and right arrow function.\n    function determineOrientation (event) {\n      var key = event.keyCode;\n      var vertical = tablist.getAttribute('aria-orientation') == 'vertical';\n      var proceed = false;\n\n      if (vertical) {\n        if (key === keys.up || key === keys.down) {\n          event.preventDefault();\n          proceed = true;\n        }\n      }\n      else {\n        if (key === keys.left || key === keys.right) {\n          proceed = true;\n        }\n      }\n\n      if (proceed) {\n        switchTabOnArrowPress(event);\n      }\n    }\n\n    // Either focus the next, previous, first, or last tab\n    // depening on key pressed\n    function switchTabOnArrowPress (event) {\n      var pressed = event.keyCode;\n\n      if (direction[pressed]) {\n        var target = event.target;\n        if (target.index !== undefined) {\n          if (tabs[target.index + direction[pressed]]) {\n            tabs[target.index + direction[pressed]].focus();\n          }\n          else if (pressed === keys.left || pressed === keys.up) {\n            focusLastTab();\n          }\n          else if (pressed === keys.right || pressed == keys.down) {\n            focusFirstTab();\n          }\n        }\n      }\n    }\n\n    // Activates any given tab panel\n    function activateTab (tab, setFocus) {\n      setFocus = setFocus || true;\n      // Deactivate all other tabs\n\n      var currentTabpanel = $(tab).closest('[role=\"tabpanel\"]');\n\n      deactivateTabs(currentTabpanel);\n\n      // Remove tabindex attribute\n      tab.removeAttribute('tabindex');\n\n      // Set the tab as selected\n      tab.setAttribute('aria-selected', 'true');\n\n      // Get the value of aria-controls (which is an ID)\n      var controls = tab.getAttribute('aria-controls');\n\n      // Remove hidden attribute from tab panel to make it visible\n      var tabPanel = document.getElementById(controls);\n\n      if (tabPanel) {\n        tabPanel.removeAttribute('hidden');\n      }\n\n      // Set focus when required\n      if (setFocus) {\n        tab.focus();\n      }\n    }\n\n    // Deactivate all tabs and tab panels\n    function deactivateTabs (currentTabpanel) {\n      var tabsInCurrentTabpanel = $(currentTabpanel).find('[role=\"tab\"]');\n\n      for (var t = 0; t < tabsInCurrentTabpanel.length; t++) {\n        tabsInCurrentTabpanel[t].setAttribute('tabindex', '-1');\n        tabsInCurrentTabpanel[t].setAttribute('aria-selected', 'false');\n      }\n    }\n\n    // Make a guess\n    function focusFirstTab () {\n      tabs[0].focus();\n    }\n\n    // Make a guess\n    function focusLastTab () {\n      tabs[tabs.length - 1].focus();\n    }\n\n    // Determine whether there should be a delay\n    // when user navigates with the arrow keys\n    // eslint-disable-next-line\n    function determineDelay () {\n      var hasDelay = tablist.hasAttribute('data-delay');\n      var delay = 0;\n\n      if (hasDelay) {\n        var delayValue = tablist.getAttribute('data-delay');\n        if (delayValue) {\n          delay = delayValue;\n        }\n        else {\n          // If no value is specified, default to 300ms\n          delay = 300;\n        }\n      }\n\n      return delay;\n    }\n  })();\n});\n", "import 'velocity-animate'\nimport 'velocity-ui-pack'\n\n$(document).on('turbolinks:load', function() {\n  $.Velocity.RegisterEffect(\"transition.slideLeftLongOut\", { defaultDuration: 500, calls: [[ { opacity: [ 0, 1 ], translateX: -500, translateZ: 0 } ]],reset: { translateX: 0 } })\n  $.Velocity.RegisterEffect(\"transition.slideLeftLongIn\", { defaultDuration: 500, calls: [[ { opacity: [ 1, 0 ], translateX: [0,-500], translateZ: 0 } ]] })\n  $.Velocity.RegisterEffect(\"transition.slideRightLongOut\", { defaultDuration: 500, calls: [[ { opacity: [ 0, 1 ], translateX: 500, translateZ: 0 } ]],reset: { translateX: 0 } })\n  $.Velocity.RegisterEffect(\"transition.slideRightLongIn\", { defaultDuration: 500, calls: [[ { opacity: [ 1, 0 ], translateX: [0,500], translateZ: 0 } ]] })\n});\n", "import * as flight from 'flightjs'\n\nexport var shareContent = flight.component(function(){\n  this.attributes({\n    url: \"\",\n    modalOptions: 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600'\n  });\n\n  this.after('initialize', function() {\n\n    var twitterElement = document.querySelector(\".twitter\");\n    var facebookElement = document.querySelector(\".facebook\");\n\n    if (this.$node.find('[data-share-url]').length > 0){\n      this.attr.url = this.$node.find('[data-share-url]').data('share-url');\n    }\n\n    if (this.$node.data('anchor') !== undefined){\n      this.attr.url += '#' + this.$node.data('anchor');\n    }\n\n    var twitterHandleContent = document.head.querySelector(\"[name='twitter:site']\")\n\n    if (twitterHandleContent === null && twitterElement) {\n      twitterElement.style.display = 'none'\n    } else if (twitterElement) {\n      twitterElement.style.display = 'inline-block'\n      facebookElement.style.display = 'inline-block'\n    }\n\n    this.attr.twitterHandle = twitterHandleContent === null ? '' : twitterHandleContent.content\n\n\n    if (this.attr.url === \"\") {\n      this.attr.url = window.location.href;\n    }\n\n    this.twitterLink = this.$node.find('[data-share-network=twitter]');\n    this.facebookLink = this.$node.find('[data-share-network=facebook]');\n    this.linkedinLink = this.$node.find('[data-share-network=linkedin]');\n    this.emailLink = this.$node.find('[data-share-network=email]');\n    this.codeLink = this.$node.find('[data-share-network=code]');\n\n    if (this.twitterLink)\n      this.twitterLink.on('click', this.clickTwitterHandle.bind(this));\n\n    if (this.facebookLink)\n      this.facebookLink.on('click', this.clickFacebookHandle.bind(this));\n\n    if (this.linkedinLink)\n      this.linkedinLink.on('click', this.clickLinkedinHandle.bind(this));\n\n    if (this.emailLink.length)\n      this.emailLink.on('click', this.clickEmailHandle.bind(this));\n  });\n\n  this.clickTwitterHandle = function(e) {\n    e.preventDefault();\n    try {\n      var twitter_intent_url = 'https://twitter.com/intent/tweet?text=' + this.shareText();\n      if (this.attr.twitterHashtags != undefined) {\n        twitter_intent_url += '&hashtags= ' + this.attr.twitterHashtags;\n      }\n      twitter_intent_url += '&url=' + encodeURIComponent(this.attr.url);\n      if (this.attr.twitterHandle != undefined) {\n        twitter_intent_url += '&via=' + this.attr.twitterHandle;\n      }\n\n      window.open(twitter_intent_url, '', this.attr.modalOptions);\n\n    } catch (missingShareTextNode) {\n      console.warn('Error: missing share Text Node');\n    }\n  };\n\n  this.clickFacebookHandle = function(e) {\n    e.preventDefault();\n    window.open('http://www.facebook.com/sharer/sharer.php?u='+ encodeURIComponent(this.attr.url), '', this.attr.modalOptions);\n  };\n\n  this.clickLinkedinHandle = function(e) {\n    e.preventDefault();\n\n    window.open('https://www.linkedin.com/shareArticle?mini=true&url='+encodeURIComponent(this.attr.url)+'&title=' + this.shareText(), '', this.attr.modalOptions);\n  };\n\n  this.clickEmailHandle = function(e) {\n    e.preventDefault();\n    try {\n      window.location.href = 'mailto:?subject=Recommended article from ICIJ&body=' + this.shareText() + ' ' + encodeURIComponent(this.attr.url);\n    } catch (missingShareTextNode) {\n      console.warn('Error: missing share Text Node');\n    }\n  };\n\n  this.shareText = function(){\n    var text;\n    var textNode = this.$node.find('[data-share-text]');\n\n    if (textNode.length && textNode.data('share-text') !== undefined) {\n      text = textNode.data('share-text');\n    } else {\n      if (!textNode.length)\n        textNode = $('[data-share-text]')\n      if (!textNode.length)\n        textNode = $('h1');\n      text = $.trim(textNode.text());\n      if (!text.length)\n        text = window.document.title;\n    }\n\n    if (text.length > 101) {\n      text = text.substring(0,101) + '\u2026';\n    }\n    return text;\n  };\n});\n\n$(document).on('turbolinks:load ajax:complete ajaxSuccess', function() {\n  shareContent.attachTo('[data-share]');\n});\n", "$(document).on(\"turbolinks:load\", function() {\n  const tabs = document.querySelectorAll(\"[role^=tabs]\");\n  const activeClass = \"is-active\";\n\n  const getSeed = str => {\n    const pattern = new RegExp(/^tabs-(.*)/);\n    const match = pattern.exec(str) || [];\n    return match.length > 1 ? match[1] : undefined;\n  };\n\n  const deactivate = elems => {\n    for (let i = 0; i < elems.length; i++) {\n      elems[i].classList.remove(activeClass);\n    }\n  };\n\n  const activate = elems => {\n    for (let i = 0; i < elems.length; i++) {\n      elems[i].classList.add(activeClass);\n    }\n  };\n\n  tabs.forEach(tab => {\n    const seed = getSeed(tab.getAttribute(\"role\"));\n\n    if (seed) {\n      const tabscontent = document.querySelector(`[role=tabscontent-${seed}]`);\n      const tabcontent = tabscontent.querySelectorAll(\"[role=tabcontent]\");\n      const tablinks = tab.querySelectorAll(\"[role=tablink]\");\n\n      for (let i = 0; i < tablinks.length; i++) {\n        if (tablinks[i].classList.contains(activeClass) || tabcontent[i].classList.contains(activeClass)) {\n          activate([tablinks[i], tabcontent[i]]);\n        }\n\n        tablinks[i].addEventListener(\"click\", function(event) {\n          const elem = event.currentTarget;\n\n          if (!elem.classList.contains(activeClass)) {\n            deactivate([...tablinks, ...tabcontent]);\n\n            const index = [...tablinks].indexOf(elem);\n            activate([elem, tabcontent[index]]);\n          }\n        });\n      }\n    }\n  });\n});\n", "import Turbolinks from 'turbolinks'\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n  const disableTurbolinks = document.querySelector(\"body[data-turbolinks='false']\")\n\n  // If we don't found at body level this tag, we enable Turbolinks by default\n  if (!disableTurbolinks) {\n    Turbolinks.start()\n  }\n})\n", "// iFrame communication\nexport function handleIFramePageLoaded() {\n  // If the current page has been loaded in an iframe\n  if (window.location !== window.parent.location) {\n    // Send a message to the iframe container with the URL (href + hash) and the title of the document\n    let message = {\n      type: 'gobiertoIframeUrl',\n      href: window.location.href,\n      hash: window.location.hash,\n      title: window.document.title\n    };\n    window.parent.postMessage(message, '*');\n  }\n}\n\n$(document).on(\"turbolinks:load\", () => handleIFramePageLoaded())\n", "import './modules/translations.js'\n", "I18n.translations || (I18n.translations = {});\nI18n.translations[\"ca\"] = I18n.extend((I18n.translations[\"ca\"] || {}), JSON.parse('{\"activemodel\":{\"attributes\":{\"gobierto_admin/admin_confirmation_form\":{\"email\":\"Email\"},\"gobierto_admin/admin_edit_password_form\":{\"password\":\"Contrasenya\",\"password_confirmation\":\"Confirmaci\u00F3 de la contrasenya\"},\"gobierto_admin/admin_form\":{\"email\":\"Email\",\"name\":\"Nom\",\"password\":\"Contrasenya\",\"password_confirmation\":\"Confirmaci\u00F3 de la contrasenya\",\"site_ids\":\"Sites\",\"site_modules\":\"M\u00F2duls\"},\"gobierto_admin/admin_group_form\":{\"name\":\"Nom del grup\"},\"gobierto_admin/admin_invitation_form\":{\"emails\":\"Emails\",\"site_ids\":\"Sites\"},\"gobierto_admin/admin_new_password_form\":{\"email\":\"Email\"},\"gobierto_admin/file_attachment_form\":{\"description\":\"Descripci\u00F3\",\"file_digest\":\"Aquest arxiu\",\"name\":\"Nom\"},\"gobierto_admin/gobierto_budgets/options_form\":{\"budgets_guide_page\":\"P\u00E0gina de la guia de pressupostos (si no selecciones niguna se mostrar\u00E0 el text per defecte)\",\"comparison_compare_municipalities\":\"Mostrar municipis espec\u00EDfics\",\"comparison_context_table_enabled\":\"Mostrar taula de contexte\",\"comparison_show_widget\":\"Mostrar widget comparaci\u00F3\",\"comparison_tool_enabled\":\"Comparaci\u00F3\",\"feedback_emails\":\"Correu-e per a rebre participacions\",\"receipt_configuration\":\"Configuraci\u00F3 del rebut\"},\"gobierto_admin/gobierto_calendars/calendar_configuration_form\":{\"ibm_notes_pwd\":\"La contrasenya\",\"ibm_notes_url\":\"La URL\",\"ibm_notes_usr\":\"El nom d\\'usuari\",\"microsoft_exchange_pwd\":\"La contrasenya\",\"microsoft_exchange_url\":\"La URL\",\"microsoft_exchange_usr\":\"El nom d\\'usuari\"},\"gobierto_admin/gobierto_calendars/event_form\":{\"attachment_file\":\"Fitxer adjunt\",\"description\":\"Descripci\u00F3\",\"ends_at\":\"Data de finalitzaci\u00F3\",\"starts_at\":\"Data de comen\u00E7ament\",\"title\":\"T\u00EDtol\",\"title_translations\":\"T\u00EDtol\"},\"gobierto_admin/gobierto_cms/page_form\":{\"body\":\"Contingut\",\"published_on\":\"Data de publicaci\u00F3\",\"slug\":\"URL\",\"title\":\"T\u00EDtol\"},\"gobierto_admin/gobierto_cms/section_form\":{\"slug\":\"URL\",\"title\":\"T\u00EDtol\"},\"gobierto_admin/gobierto_common/collection_form\":{\"container_global_id\":\"Contenidor\",\"container_id\":\"Contenidor\",\"item_type\":\"Tipus\",\"slug\":\"URL\",\"title\":\"T\u00EDtol\"},\"gobierto_admin/gobierto_common/custom_field_form\":{\"date\":\"Data\",\"field_type\":\"Tipus de camp\",\"image\":\"Imatge\",\"indicators\":\"Indicadors\",\"localized_paragraph\":\"Text llarg\",\"localized_string\":\"Text (l\u00EDnia)\",\"multiple_options\":\"Selecci\u00F3 m\u00FAltiple\",\"name\":\"Nom\",\"numeric\":\"Nombre\",\"options\":\"Opcions\",\"paragraph\":\"Text llarg sense traduccions\",\"single_option\":\"Selecci\u00F3 \u00FAnica\",\"string\":\"Text sense traduccions (l\u00EDnia)\",\"uid\":\"Identificador\",\"vocabulary_options\":\"Vocabulari\"},\"gobierto_admin/gobierto_common/term_form\":{\"description\":\"Descripci\u00F3\",\"external_id\":\"ID extern\",\"name\":\"Nom\",\"slug\":\"Slug\",\"term_id\":\"T\u00E9rme Pare\"},\"gobierto_admin/gobierto_common/vocabulary_form\":{\"name\":\"Nom\"},\"gobierto_admin/gobierto_data/dataset_form\":{\"name\":\"Nom\",\"slug\":\"Slug\",\"table_name\":\"Nom de la taula\"},\"gobierto_admin/gobierto_data/settings_form\":{\"api_settings_max_dataset_size_for_queries\":\"Mida m\u00E0xima de datasets sense limitar la vista pr\u00E8via (MB)\",\"db_config\":\"Configuraci\u00F3 de la connexi\u00F3 a la base de dades\",\"frontend_enabled\":\"Front-end visible\"},\"gobierto_admin/gobierto_investments/project_form\":{\"external_id\":\"ID extern\",\"title\":\"T\u00EDtol\"},\"gobierto_admin/gobierto_observatory/settings_form\":{\"observatory_config\":\"Configuraci\u00F3 de l\\'observatori\"},\"gobierto_admin/gobierto_people/person_form\":{\"avatar_file\":\"Avatar\",\"avatar_url\":\"Avatar\",\"bio\":\"Biografia\",\"bio_file\":\"Fitxer adjunt\",\"bio_url\":\"Fichero adjunto\",\"category\":\"Categoria\",\"charge\":\"C\u00E0rrec\",\"email\":\"Correu-e\",\"name\":\"Nom\",\"party\":\"Posici\u00F3\",\"political_group_id\":\"Grup pol\u00EDtic\"},\"gobierto_admin/gobierto_people/person_post_form\":{\"body\":\"Contingut\",\"tags\":\"Tags\",\"title\":\"T\u00EDtol\"},\"gobierto_admin/gobierto_people/person_statement_form\":{\"attachment_file\":\"Fitxer adjunt\",\"published_on\":\"Data de publicaci\u00F3\",\"title\":\"T\u00EDtol\",\"title_translations\":\"T\u00EDtol\"},\"gobierto_admin/gobierto_people/political_group_form\":{\"name\":\"Nom de l\\'grupaci\u00F3\"},\"gobierto_admin/gobierto_plans/node_form\":{\"category_id\":\"Categoria\",\"ends_at\":\"Data de fi\",\"name\":\"Projecte\",\"progress\":\"Progr\u00E9s\",\"starts_at\":\"Data d\\'inici\",\"status_id\":\"Estat\"},\"gobierto_admin/gobierto_plans/plan_form\":{\"configuration_data\":\"Configuraci\u00F3\",\"css\":\"CSS\",\"csv_file\":\"Fitxer CSV\",\"footer\":\"Peu de p\u00E0gina\",\"introduction\":\"Introducci\u00F3\",\"plan_type_id\":\"Tipus\",\"slug\":\"url\",\"statuses_vocabulary_id\":\"Vocabulari de estats\",\"title\":\"T\u00EDtol\",\"vocabulary_id\":\"Vocabulari de categories\",\"year\":\"Any\"},\"gobierto_admin/gobierto_plans/plan_type_form\":{\"name\":\"Nom\",\"slug\":\"url\"},\"gobierto_admin/gobierto_visualizations/settings_form\":{\"visualizations_config\":\"Configuraci\u00F3 de les visualitzacions\"},\"gobierto_admin/issue_form\":{\"name\":\"Nom\",\"slug\":\"URL\"},\"gobierto_admin/scope_form\":{\"name\":\"Nom\"},\"gobierto_admin/site_form\":{\"admin_custom_code\":\"Codi personalitzat d\\'admin\",\"available_locales\":\"Idiomes disponibles\",\"default_locale\":\"Idioma per defecte\",\"domain\":\"Domini\",\"foot_markup\":\"HTML de Peu\",\"google_analytics_id\":\"Codi de Google Analytics\",\"head_markup\":\"HTML de Cap\u00E7alera\",\"home_page\":\"M\u00F2dul d\\'inici\",\"home_page_item_id\":\"P\u00E0gina d\\'inici\",\"links_markup\":\"HTML de Enlla\u00E7os\",\"logo_file\":\"Logotip\",\"name\":\"Nom de l\\'entitat\",\"organization_id\":\"Identificador de l\\'organitzaci\u00F3 (codi INE)\",\"organization_name\":\"Organitzaci\u00F3\",\"populate_data_api_token\":\"API token Populate Data\",\"privacy_page_id\":\"P\u00E0gina privacitat\",\"raw_configuration_variables\":\"Altres variables configuraci\u00F3\",\"registration_disabled\":\"Deshabilitar el registre (nom\u00E9s oculta els enlla\u00E7os al registre/login)\",\"reply_to_email\":\"Direcci\u00F3 de resposta en correus-e\",\"title\":\"Nom del site\"},\"gobierto_admin/user_form\":{\"email\":\"Email\",\"name\":\"Nom\"},\"gobierto_admin/user_password_form\":{\"password\":\"Contrasenya\",\"password_confirmation\":\"Confirmaci\u00F3n de contrasenya\"},\"gobierto_dashboards/dashboard_form\":{\"title\":\"T\u00EDtol\"},\"gobierto_people/person_message\":{\"body\":\"Missatge\",\"email\":\"El teu e-mail\",\"name\":\"El teu nom\"},\"user/census_verification_form\":{\"date_of_birth\":\"Data de naixement\",\"document_number\":\"Nombre de document\",\"site\":\"Lloc\"},\"user/confirmation_form\":{\"date_of_birth\":\"Data de naixement\",\"document_number\":\"Nombre de document\",\"email\":\"El teu Correu-e\",\"gender\":\"Genre\",\"name\":\"El teu Nom\",\"password\":\"La teva contrasenya\",\"password_confirmation\":\"La teva contrasenya, de nou\"},\"user/confirmation_request_form\":{\"email\":\"El teu Correu-e\"},\"user/edit_password_form\":{\"password\":\"La teva contrasenya\",\"password_confirmation\":\"La teva contrasenya, de nou\"},\"user/new_password_form\":{\"email\":\"El teu Correu-e\"},\"user/registration_form\":{\"email\":\"El teu Correu-e\"},\"user/session_form\":{\"email\":\"El teu Correu-e\",\"password\":\"La teva Contrasenya\"},\"user/settings_form\":{\"date_of_birth\":\"Data de naixement\",\"email\":\"El teu Correu-e\",\"gender\":\"Genre\",\"name\":\"El teu Nom\",\"password\":\"La teva contrasenya\",\"password_confirmation\":\"La teva contrasenya, de nou\"},\"user/subscription_form\":{\"subscribable\":\"Recurs\",\"user\":\"Usuari\",\"user_email\":\"Correu-e\"}},\"errors\":{\"models\":{\"gobierto_admin/gobierto_common/vocabulary_terms_import_form\":{\"attributes\":{\"base\":{\"invalid_row\":\"Hi ha una fila amb dades inv\u00E0lid: %{row_data}\"}}},\"gobierto_admin/gobierto_data/dataset_form\":{\"attributes\":{\"table_name\":{\"invalid_table\":\"No es pot accedir a la taula. Missatge d\\'error: \\\\\"%{error_message}\\\\\"\"}}},\"gobierto_admin/gobierto_data/settings_form\":{\"attributes\":{\"db_config\":{\"invalid_connection\":\"No es pot connectar amb les dades de configuraci\u00F3. Missatge d\\'error: \\\\\"%{error_message}\\\\\"\",\"invalid_format\":\"La configuraci\u00F3 no t\u00E9 un format JSON v\u00E0lid\"}}},\"gobierto_admin/gobierto_observatory/settings_form\":{\"attributes\":{\"observatory_config\":{\"invalid_format\":\"La configuraci\u00F3 no t\u00E9 un format JSON v\u00E0lid\",\"invalid_values\":\"La configuraci\u00F3 no t\u00E9 valors v\u00E0lids\"}}},\"gobierto_admin/gobierto_plans/plan_data_form\":{\"attributes\":{\"base\":{\"category_not_found\":\"Alguna de les categories no s\\'ha pogut trobar. Contingut de la fila: %{row_data}\",\"external_id_taken\":\"El camp external_id ja est\u00E0 en \u00FAs, b\u00E9 perqu\u00E8 una altra fila t\u00E9 el mateix external_id o perqu\u00E8 estava buida i autom\u00E0ticament es va assignar el mateix valor. Contingut de la fila: %{row_data}\",\"file_not_found\":\"Fitxer no trobat\",\"invalid_columns\":\"No estan totes les columnes necess\u00E0ries\",\"invalid_format\":\"Format de fitxer inv\u00E0lid\",\"invalid_row\":\"Hi ha una fila amb dades inv\u00E0lid: %{row_data}\",\"status_missing\":\"L\\'estat de la fila no s\\'ha trobat en el vocabulari d\\'estats corresponent o hi ha un estat a la fila per\u00F2 no hi ha un vocabulari d\\'estats configurat en el pla. Contingut de la fila: %{row_data}\",\"term_not_found\":\"No ha estat possible trobar el terme \\'%{term}\\' en el vocabulari \\'%{vocabulary}\\' usat per la columna \\'Node.%{uid}\\'\",\"used_resource\":\"El vocabulari empra termes que s\\'usen en altres parts de l\\'aplicaci\u00F3\"}}},\"gobierto_admin/gobierto_plans/plan_table_custom_fields_form\":{\"attributes\":{\"base\":{\"file_not_found\":\"Fitxer no trobat\",\"invalid_columns\":\"No estan totes les columnes necess\u00E0ries\",\"invalid_format\":\"Format de fitxer inv\u00E0lid\"}}},\"gobierto_admin/gobierto_plans/projects_form\":{\"attributes\":{\"base\":{\"category_missing\":\"Categoria no trobada en dades del projecte. Si us plau, proporcioneu un category_id o category_external_id v\u00E0lid. Dades del projecte: %{json_data}\",\"failed_import\":\"El projecte amb les dades seg\u00FCents no ha pogut ser importat: %{json_data}\",\"status_missing\":\"Estat no trobat en dades del projecte. Si us plau, proporciona un status_id o status_external_id v\u00E0lid. Dades del projecte: %{json_data}\"}}},\"gobierto_admin/gobierto_visualizations/settings_form\":{\"attributes\":{\"visualizations_config\":{\"invalid_format\":\"La configuraci\u00F3 no t\u00E9 un format JSON v\u00E0lid\",\"invalid_values\":\"La configuraci\u00F3 no t\u00E9 valors v\u00E0lids\"}}},\"gobierto_data/dataset_form\":{\"attributes\":{\"data_file\":{\"no_file_included\":\"L\\'arxiu no s\\'ha pogut carregar. Si us plau, revisa la petici\u00F3 i assegura\\'t que el contingut de l\\'arxiu s\\'hagi incl\u00F2s en ella\"}}}}},\"models\":{\"gobierto_admin/admin_confirmation_form\":\"Confirmaci\u00F3\",\"gobierto_admin/admin_edit_password_form\":\"Canvi de contrasenya\",\"gobierto_admin/admin_form\":\"Administrador\",\"gobierto_admin/admin_group_form\":\"Grup\",\"gobierto_admin/admin_invitation_form\":\"Invitaci\u00F3\",\"gobierto_admin/admin_new_password_form\":\"Recuperaci\u00F3 de contrasenya\",\"gobierto_admin/file_attachment_form\":\"Canvi en el fitxer\",\"gobierto_admin/gobierto_budgets/options_form\":\"Opcions\",\"gobierto_admin/gobierto_calendars/event_form\":\"Esdeveniment\",\"gobierto_admin/gobierto_cms/page_form\":\"P\u00E0gina\",\"gobierto_admin/gobierto_cms/section_form\":\"Secci\u00F3\",\"gobierto_admin/gobierto_common/collection_form\":\"Col\u00B7lecci\u00F3\",\"gobierto_admin/gobierto_common/content_block_form\":\"Bloc de contingut\",\"gobierto_admin/gobierto_common/term_form\":\"Terme\",\"gobierto_admin/gobierto_common/vocabulary_form\":\"Vocabulari\",\"gobierto_admin/gobierto_people/person_form\":\"Perfil\",\"gobierto_admin/gobierto_people/person_post_form\":\"Post\",\"gobierto_admin/gobierto_people/person_statement_form\":\"Declaraci\u00F3\",\"gobierto_admin/gobierto_people/political_group_form\":\"Agrupaci\u00F3 pol\u00EDtica\",\"gobierto_admin/issue_form\":\"Tema\",\"gobierto_admin/scope_form\":\"\u00C0mbit\",\"gobierto_admin/site_form\":\"Lloc\",\"gobierto_admin/user_form\":\"Usuari\",\"gobierto_admin/user_password_form\":\"Canvi de contrasenya\",\"gobierto_admin/user_welcome_message_form\":\"Email de benvinguda\",\"gobierto_people/person_message\":\"Missatge\",\"user/census_verification_form\":\"Verificaci\u00F3 de la identitat\",\"user/confirmation_form\":\"Confirmaci\u00F3\",\"user/confirmation_request_form\":\"Sol\u00B7licitud de confirmaci\u00F3\",\"user/edit_password_form\":\"Canviar contrasenya\",\"user/new_password_form\":\"Recuperar contrasenya\",\"user/registration_form\":\"Registre\",\"user/session_form\":\"Sessi\u00F3\",\"user/settings_form\":\"Ajusts\",\"user/subscription_form\":\"Subscripci\u00F3\"}},\"activerecord\":{\"attributes\":{\"gobierto_admin/api_token\":{\"domain\":\"Domini\",\"name\":\"Nom\"},\"gobierto_admin/permission/site_option\":{\"resource_types\":{\"admins\":\"Administradors\",\"calendars\":\"Agendes\",\"custom_fields\":\"Camps personalitzats\",\"customize\":\"Personalitzar site\",\"documents\":\"Documents\",\"templates\":\"Plantilles\",\"vocabularies\":\"Vocabularis\"}},\"gobierto_attachments/attachment\":{\"current_version\":\"Versi\u00F3 actual\",\"description\":\"Descripci\u00F3\",\"file_digest\":\"Fitxer\",\"file_name\":\"Nom del fitxer\",\"file_size\":\"Mida del fitxer\",\"name\":\"Nom\",\"url\":\"URL\"},\"gobierto_calendars/event_attendee\":{\"charge\":\"C\u00E0rrec\",\"name\":\"Nom\",\"person\":\"Persona\"},\"gobierto_calendars/event_location\":{\"address\":\"Adre\u00E7a\",\"name\":\"Nom\"},\"gobierto_calendars/filtering_rule\":{\"remove_filtering_text\":\"Eliminar text filtrat\"},\"gobierto_cms/page\":{\"body\":\"Contingut\",\"slug\":\"URL\",\"title\":\"T\u00EDtol\"},\"gobierto_common/api_token_form\":{\"domain\":\"Domini\",\"name\":\"Nom\"},\"gobierto_common/content_block_field\":{\"field_type\":\"Tipus de camp\",\"field_types\":{\"currency\":\"Moneda\",\"date\":\"Data\",\"text\":\"Tipus de camp\",\"url\":\"URL\"}},\"gobierto_people/trip\":{\"accomodation_expenses\":\"Hotels i allotjament\",\"food_expenses\":\"Dietes i manutenci\u00F3\",\"other_expenses\":\"Altres despeses\",\"total_expenses\":\"Despeses totals\",\"transport_expenses\":\"Transport\"},\"user/api_token\":{\"domain\":\"Domini\",\"name\":\"Nom\"}},\"enums\":{\"gobierto_calendars/filtering_rule\":{\"action\":{\"ignore\":\"Ignorar\",\"import\":\"Importar\",\"import_as_draft\":\"Importar como esborrany\"},\"condition\":{\"contains\":\"Cont\u00E9\",\"ends_with\":\"Termina per\",\"not_contains\":\"No cont\u00E9\",\"not_starts_with\":\"No comen\u00E7a per\",\"starts_with\":\"Comen\u00E7a per\"},\"field\":{\"description\":\"Cos\",\"title\":\"T\u00EDtol\"}}},\"errors\":{\"messages\":{\"record_invalid\":\"La validaci\u00F3 ha fallat: %{errors}\"},\"models\":{\"gobierto_admin/api_token\":{\"attributes\":{\"domain\":{\"not_valid_format\":\"Format inv\u00E0lid\"}}},\"gobierto_common/custom_field_record\":{\"attributes\":{\"item\":{\"wrong_item_class\":\"no est\u00E0 associat a un item de la classe adequada\"}}},\"gobierto_common/term\":{\"attributes\":{\"base\":{\"has_dependent_resources_html\":\"Est\u00E0 sent usat pels recursos:\\\\u003c/br\\\\u003e %{dependencies_list}\"}}},\"gobierto_data/connection\":{\"missing_configuration\":\"La base de dades no est\u00E0 configurada\"},\"user/api_token\":{\"attributes\":{\"domain\":{\"not_valid_format\":\"Format inv\u00E0lid\"}}}}},\"messages\":{\"gobierto_attachments/attachment\":{\"file_too_big\":\"El fitxer excedeix la mida m\u00E0xima\"}},\"models\":{\"gobierto_attachments/attachment\":\"Adjunt\",\"gobierto_calendars/event\":\"Esdeveniment\",\"gobierto_calendars/event_attendee\":\"Assistent\",\"gobierto_calendars/event_location\":\"Localitzaci\u00F3\",\"gobierto_cms/news\":\"Noticia\",\"gobierto_cms/news_plural\":\"Noticies\",\"gobierto_cms/page\":\"P\u00E0gina\",\"gobierto_cms/pages_collection\":\"Col\u00B7lecci\u00F3 de P\u00E0gines\",\"gobierto_common/content_block_field\":\"Camp\",\"gobierto_data/dataset\":{\"one\":\"Conjunt de dades\",\"other\":\"Conjunts de dades\"},\"gobierto_investments/project\":{\"one\":\"Projecte\",\"other\":\"Projectes\"},\"gobierto_people/person\":\"C\u00E0rrec\",\"gobierto_people/person_post\":\"Post\",\"gobierto_people/person_statement\":\"Declaraci\u00F3\",\"gobierto_plans/node\":{\"one\":\"Projecte\",\"other\":\"Projectes\"},\"gobierto_plans/plan\":{\"one\":\"Pla\",\"other\":\"Plans\"},\"user\":\"Usuari\"}},\"admin_gobierto_calendars\":{\"events\":{\"admin_gobierto_calendars_calendars_synchronized\":\"Calendaris sincronitzats\"}},\"admin_groups\":{\"events\":{\"admin_groups_admin_group_created\":\"Grup d\\'admin creat creat\",\"admin_groups_admin_group_updated\":\"Grup d\\'admin actualitzat\"}},\"admins\":{\"events\":{\"admins_admin_authorization_level_updated\":\"Nivel autoritzaci\u00F3 admin actualitzat\",\"admins_admin_created\":\"Admin creat\",\"admins_admin_group_member_created\":\"Admin afegit a grup de permisos\",\"admins_admin_group_member_deleted\":\"Admin eliminat de grup de permisos\",\"admins_admin_updated\":\"Admin actualitzat\",\"admins_invitation_accepted\":\"Invitaci\u00F3 admin aceptada\",\"admins_invitation_created\":\"Admin invitat\"}},\"based_on\":\"Web basat en\",\"census\":{\"events\":{\"census_census_imported\":\"Cens importat\"}},\"concerns\":{\"gobierto_common\":{\"api_tokens_concern\":{\"create\":{\"success\":\"El Token de l\\'API s\\'ha creat correctament\"},\"destroy\":{\"failed\":\"El Token de l\\'API no ha pogut ser eliminat\",\"success\":\"El Token de l\\'API s\\'ha eliminat correctament\"},\"update\":{\"success\":\"El Token de l\\'API s\\'ha actualizat correctament\"}}}},\"controllers\":{\"gobierto_budgets\":{\"api\":{\"data\":{\"expense\":\"Despesa\",\"income\":\"Ingr\u00E9s\"}},\"budgets_execution\":{\"index\":{\"alert\":\"No hi ha dades disponibles el %{year} aix\u00ED que et mostrem el primer any amb dades\"}}}},\"cookies_eu\":{\"cookies_text\":\"Les cookies ens ajuden a oferir els nostres serveis. En utilitzar els nostres serveis, acceptes l\\'\u00FAs de cookies.\",\"learn_more\":\"M\u00E9s informaci\u00F3\",\"ok\":\"OK\"},\"countries\":{\"AC\":\"illa de l\u2019Ascensi\u00F3\",\"AD\":\"Andorra\",\"AE\":\"Emirats \u00C0rabs Units\",\"AF\":\"Afganistan\",\"AG\":\"Antigua i Barbuda\",\"AI\":\"Anguilla\",\"AL\":\"Alb\u00E0nia\",\"AM\":\"Arm\u00E8nia\",\"AN\":\"Antilles Neerlandeses\",\"AO\":\"Angola\",\"AQ\":\"Ant\u00E0rtida\",\"AR\":\"Argentina\",\"AS\":\"Samoa Nord-americana\",\"AT\":\"\u00C0ustria\",\"AU\":\"Austr\u00E0lia\",\"AW\":\"Aruba\",\"AX\":\"illes \u00C5land\",\"AZ\":\"Azerbaidjan\",\"BA\":\"B\u00F2snia i Hercegovina\",\"BB\":\"Barbados\",\"BD\":\"Bangla Desh\",\"BE\":\"B\u00E8lgica\",\"BF\":\"Burkina Faso\",\"BG\":\"Bulg\u00E0ria\",\"BH\":\"Bahrain\",\"BI\":\"Burundi\",\"BJ\":\"Ben\u00EDn\",\"BL\":\"Saint Barth\u00E9lemy\",\"BM\":\"Bermudes\",\"BN\":\"Brunei\",\"BO\":\"Bol\u00EDvia\",\"BQ\":\"Carib Neerland\u00E8s\",\"BR\":\"Brasil\",\"BS\":\"Bahames\",\"BT\":\"Bhutan\",\"BV\":\"Bouvet\",\"BW\":\"Botswana\",\"BY\":\"Bielor\u00FAssia\",\"BZ\":\"Belize\",\"CA\":\"Canad\u00E0\",\"CC\":\"illes Cocos\",\"CD\":\"Congo - Kinshasa\",\"CF\":\"Rep\u00FAblica Centreafricana\",\"CG\":\"Congo - Brazzaville\",\"CH\":\"Su\u00EFssa\",\"CI\":\"Costa d\u2019Ivori\",\"CK\":\"illes Cook\",\"CL\":\"Xile\",\"CM\":\"Camerun\",\"CN\":\"Xina\",\"CO\":\"Col\u00F2mbia\",\"CP\":\"illa Clipperton\",\"CR\":\"Costa Rica\",\"CU\":\"Cuba\",\"CV\":\"Cap Verd\",\"CW\":\"Cura\u00E7ao\",\"CX\":\"illa Christmas\",\"CY\":\"Xipre\",\"CZ\":\"Rep\u00FAblica Txeca\",\"DE\":\"Alemanya\",\"DG\":\"Diego Garcia\",\"DJ\":\"Djibouti\",\"DK\":\"Dinamarca\",\"DM\":\"Dominica\",\"DO\":\"Rep\u00FAblica Dominicana\",\"DZ\":\"Alg\u00E8ria\",\"EA\":\"Ceuta i Melilla\",\"EC\":\"Equador\",\"EE\":\"Est\u00F2nia\",\"EG\":\"Egipte\",\"EH\":\"S\u00E0hara Occidental\",\"ER\":\"Eritrea\",\"ES\":\"Espanya\",\"ET\":\"Eti\u00F2pia\",\"EU\":\"Uni\u00F3 Europea\",\"FI\":\"Finl\u00E0ndia\",\"FJ\":\"Fiji\",\"FK\":\"Illes Malvines\",\"FM\":\"Micron\u00E8sia\",\"FO\":\"illes F\u00E8roe\",\"FR\":\"Fran\u00E7a\",\"GA\":\"Gabon\",\"GB\":\"Regne Unit\",\"GD\":\"Grenada\",\"GE\":\"Ge\u00F2rgia\",\"GF\":\"Guaiana Francesa\",\"GG\":\"Guernsey\",\"GH\":\"Ghana\",\"GI\":\"Gibraltar\",\"GL\":\"Grenl\u00E0ndia\",\"GM\":\"G\u00E0mbia\",\"GN\":\"Guinea\",\"GP\":\"Guadeloupe\",\"GQ\":\"Guinea Equatorial\",\"GR\":\"Gr\u00E8cia\",\"GS\":\"illes Ge\u00F2rgia del Sud i Sandwich del Sud\",\"GT\":\"Guatemala\",\"GU\":\"Guam\",\"GW\":\"Guinea Bissau\",\"GY\":\"Guyana\",\"HK\":\"Hong Kong (RAE Xina)\",\"HM\":\"Illa Heard i Illes McDonald\",\"HN\":\"Hondures\",\"HR\":\"Cro\u00E0cia\",\"HT\":\"Hait\u00ED\",\"HU\":\"Hongria\",\"IC\":\"illes Can\u00E0ries\",\"ID\":\"Indon\u00E8sia\",\"IE\":\"Irlanda\",\"IL\":\"Israel\",\"IM\":\"illa de Man\",\"IN\":\"\u00CDndia\",\"IO\":\"Territori Brit\u00E0nic de l\u2019Oce\u00E0 \u00CDndic\",\"IQ\":\"Iraq\",\"IR\":\"Iran\",\"IS\":\"Isl\u00E0ndia\",\"IT\":\"It\u00E0lia\",\"JE\":\"Jersey\",\"JM\":\"Jamaica\",\"JO\":\"Jord\u00E0nia\",\"JP\":\"Jap\u00F3\",\"KE\":\"Kenya\",\"KG\":\"Kirguizistan\",\"KH\":\"Cambodja\",\"KI\":\"Kiribati\",\"KM\":\"Comores\",\"KN\":\"Saint Christopher i Nevis\",\"KP\":\"Corea del Nord\",\"KR\":\"Corea del Sud\",\"KW\":\"Kuwait\",\"KY\":\"Illes Caiman\",\"KZ\":\"Kazakhstan\",\"LA\":\"Laos\",\"LB\":\"L\u00EDban\",\"LC\":\"Saint Lucia\",\"LI\":\"Liechtenstein\",\"LK\":\"Sri Lanka\",\"LR\":\"Lib\u00E8ria\",\"LS\":\"Lesotho\",\"LT\":\"Litu\u00E0nia\",\"LU\":\"Luxemburg\",\"LV\":\"Let\u00F2nia\",\"LY\":\"L\u00EDbia\",\"MA\":\"Marroc\",\"MC\":\"M\u00F2naco\",\"MD\":\"Mold\u00E0via\",\"ME\":\"Montenegro\",\"MF\":\"Saint Martin\",\"MG\":\"Madagascar\",\"MH\":\"illes Marshall\",\"MK\":\"Maced\u00F2nia\",\"ML\":\"Mali\",\"MM\":\"Myanmar (Birm\u00E0nia)\",\"MN\":\"Mong\u00F2lia\",\"MO\":\"Macau (RAE Xina)\",\"MP\":\"illes Mariannes del Nord\",\"MQ\":\"Martinica\",\"MR\":\"Maurit\u00E0nia\",\"MS\":\"Montserrat\",\"MT\":\"Malta\",\"MU\":\"Maurici\",\"MV\":\"Maldives\",\"MW\":\"Malawi\",\"MX\":\"M\u00E8xic\",\"MY\":\"Mal\u00E0isia\",\"MZ\":\"Mo\u00E7ambic\",\"NA\":\"Nam\u00EDbia\",\"NC\":\"Nova Caled\u00F2nia\",\"NE\":\"N\u00EDger\",\"NF\":\"Norfolk\",\"NG\":\"Nig\u00E8ria\",\"NI\":\"Nicaragua\",\"NL\":\"Pa\u00EFsos Baixos\",\"NO\":\"Noruega\",\"NP\":\"Nepal\",\"NR\":\"Nauru\",\"NU\":\"Niue\",\"NZ\":\"Nova Zelanda\",\"OM\":\"Oman\",\"PA\":\"Panam\u00E0\",\"PE\":\"Per\u00FA\",\"PF\":\"Polin\u00E8sia Francesa\",\"PG\":\"Papua Nova Guinea\",\"PH\":\"Filipines\",\"PK\":\"Pakistan\",\"PL\":\"Pol\u00F2nia\",\"PM\":\"Saint-Pierre-et-Miquelon\",\"PN\":\"illes Pitcairn\",\"PR\":\"Puerto Rico\",\"PS\":\"Palestina\",\"PT\":\"Portugal\",\"PW\":\"Palau\",\"PY\":\"Paraguai\",\"QA\":\"Qatar\",\"QO\":\"Territoris allunyats d\u2019Oceania\",\"RE\":\"Illa de la Reuni\u00F3\",\"RO\":\"Romania\",\"RS\":\"S\u00E8rbia\",\"RU\":\"R\u00FAssia\",\"RW\":\"Ruanda\",\"SA\":\"Ar\u00E0bia Saudita\",\"SB\":\"illes Salom\u00F3\",\"SC\":\"Seychelles\",\"SD\":\"Sudan\",\"SE\":\"Su\u00E8cia\",\"SG\":\"Singapur\",\"SH\":\"Saint Helena\",\"SI\":\"Eslov\u00E8nia\",\"SJ\":\"Svalbard i Jan Mayen\",\"SK\":\"Eslov\u00E0quia\",\"SL\":\"Sierra Leone\",\"SM\":\"San Marino\",\"SN\":\"Senegal\",\"SO\":\"Som\u00E0lia\",\"SR\":\"Surinam\",\"SS\":\"Sudan del Sud\",\"ST\":\"S\u00E3o Tom\u00E9 i Pr\u00EDncipe\",\"SV\":\"El Salvador\",\"SX\":\"Sint Maarten\",\"SY\":\"S\u00EDria\",\"SZ\":\"Swazil\u00E0ndia\",\"TA\":\"Trist\u00E3o da Cunha\",\"TC\":\"Illes Turks i Caicos\",\"TD\":\"Txad\",\"TF\":\"Territoris Francesos del Sud\",\"TG\":\"Togo\",\"TH\":\"Tail\u00E0ndia\",\"TJ\":\"Tadjikistan\",\"TK\":\"Tokelau\",\"TL\":\"Timor Oriental\",\"TM\":\"Turkmenistan\",\"TN\":\"Tun\u00EDsia\",\"TO\":\"Tonga\",\"TR\":\"Turquia\",\"TT\":\"Trinitat i Tobago\",\"TV\":\"Tuvalu\",\"TW\":\"Taiwan\",\"TZ\":\"Tanz\u00E0nia\",\"UA\":\"Ucra\u00EFna\",\"UG\":\"Uganda\",\"UM\":\"illes Perif\u00E8riques Menors dels EUA\",\"US\":\"Estats Units\",\"UY\":\"Uruguai\",\"UZ\":\"Uzbekistan\",\"VA\":\"Ciutat del Vatic\u00E0\",\"VC\":\"Saint Vincent i les Grenadines\",\"VE\":\"Vene\u00E7uela\",\"VG\":\"Illes Verges Brit\u00E0niques\",\"VI\":\"Illes Verges Nord-americanes\",\"VN\":\"Vietnam\",\"VU\":\"Vanuatu\",\"WF\":\"Wallis i Futuna\",\"WS\":\"Samoa\",\"XK\":\"Kosovo\",\"YE\":\"Iemen\",\"YT\":\"Mayotte\",\"ZA\":\"Rep\u00FAblica de Sud-\u00E0frica\",\"ZM\":\"Z\u00E0mbia\",\"ZW\":\"Zimb\u00E0bue\"},\"country\":\"Espanya\",\"date\":{\"abbr_day_names\":[\"dg\",\"dl\",\"dm\",\"dc\",\"dj\",\"dv\",\"ds\"],\"abbr_month_names\":[null,\"gen\",\"feb\",\"mar\",\"abr\",\"mai\",\"jun\",\"jul\",\"ago\",\"set\",\"oct\",\"nov\",\"des\"],\"day_names\":[\"diumenge\",\"dilluns\",\"dimarts\",\"dimecres\",\"dijous\",\"divendres\",\"dissabte\"],\"formats\":{\"day_month\":\"%d/%m\",\"default\":\"%d-%m-%Y\",\"long\":\"%d %B de %Y\",\"short\":\"%d %b\",\"shortest\":\"%d %b %y\"},\"month_names\":[null,\"gener\",\"febrer\",\"mar\u00E7\",\"abril\",\"maig\",\"juny\",\"juliol\",\"agost\",\"setembre\",\"octubre\",\"novembre\",\"desembre\"],\"order\":[\"day\",\"month\",\"year\"]},\"datetime\":{\"distance_in_words\":{\"about_x_hours\":{\"one\":\"fa aproximadament 1 hora\",\"other\":\"fa aproximadament %{count} hores\"},\"about_x_months\":{\"one\":\"fa aproximadament 1 mes\",\"other\":\"fa aproximadament %{count} mesos\"},\"about_x_years\":{\"one\":\"fa aproximadament 1 any\",\"other\":\"fa aproximadament %{count} anys\"},\"almost_x_years\":{\"one\":\"fa quasi 1 any\",\"other\":\"fa quasi %{count} anys\"},\"half_a_minute\":\"fa mig minut\",\"less_than_x_minutes\":{\"one\":\"fa menys d\\'1 minut\",\"other\":\"fa menys de %{count} minuts\"},\"less_than_x_seconds\":{\"one\":\"fa menys d\\'1 segon\",\"other\":\"fa menys de %{count} segons\"},\"over_x_years\":{\"one\":\"fa m\u00E9s d\\'1 any\",\"other\":\"fa m\u00E9s de %{count} anys\"},\"x_days\":{\"one\":\"fa 1 dia\",\"other\":\"fa %{count} dies\"},\"x_minutes\":{\"one\":\"fa 1 minut\",\"other\":\"fa %{count} minuts\"},\"x_months\":{\"one\":\"fa 1 mes\",\"other\":\"fa %{count} mesos\"},\"x_seconds\":{\"one\":\"fa 1 segon\",\"other\":\"fa %{count} segons\"},\"x_years\":{\"one\":\"fa 1 any\",\"other\":\"fa %{count} anys\"}},\"prompts\":{\"day\":\"Dia\",\"hour\":\"Hora\",\"minute\":\"Minuts\",\"month\":\"Mes\",\"second\":\"Segons\",\"year\":\"Any\"}},\"errors\":{\"format\":\"%{attribute} %{message}\",\"messages\":{\"accepted\":\"ha de ser acceptat\",\"array_too_short\":{\"one\":\"\u00E9s massa curt (al menys 1 element)\",\"other\":\"\u00E9s massa curt (al menys %{count} elements)\"},\"blank\":\"no pot estar en blanc\",\"blank_for_modules\":\"L\\'organitzaci\u00F3 no est\u00E0 correctament configurada. L\\'identificador \u00E9s obligatori per als m\u00F2duls que has activat.\",\"collection_taken\":\"no pot tenir una altra col\u00B7lecci\u00F3 d\\'aquest tipus.\",\"confirmation\":\"no coincideix amb %{attribute}\",\"custom_fields\":{\"options\":{\"missing_vocabulary\":\"Alguna columna de tipus \\\\\"vocabulary\\\\\" no t\u00E9 valor en \\\\\"dataSource\\\\\"\",\"wrong_column_type\":\"Alguna columna no pertany a un tipus reconegut. Tipus reconeguts: \\\\\"text\\\\\", \\\\\"integer\\\\\", \\\\\"float\\\\\", \\\\\"date\\\\\" y \\\\\"vocabulary\\\\\"\",\"wrong_custom_field_uids\":\"Els uids configurats no existeixen o pertanyen a camps personalitzats que no tenen definit un valor de progr\u00E9s\"}},\"empty\":\"no pot estar buit\",\"equal_to\":\"ha de ser igual a %{count}\",\"even\":\"ha de ser parell\",\"exclusion\":\"est\u00E0 reservat\",\"greater_than\":\"ha de ser m\u00E9s gran que %{count}\",\"greater_than_or_equal_to\":\"ha de ser m\u00E9s gran o igual a %{count}\",\"inclusion\":\"no est\u00E0 incl\u00F3s a la llista\",\"invalid\":\"no \u00E9s v\u00E0lid\",\"invalid_consultation_response\":\"No s\\'ha desat la consulta. Per favor, revisa els valors i prova de nou.\",\"invalid_table_name\":\"Ha de comen\u00E7ar per una lletra o un gui\u00F3 baix; la resta nom\u00E9s pot contenir lletres, d\u00EDgits o guions baixos\",\"less_than\":\"ha de ser menor que %{count}\",\"less_than_or_equal_to\":\"ha de ser menor o igual a %{count}\",\"not_a_number\":\"no \u00E9s un n\u00FAmero\",\"not_an_integer\":\"ha de ser un enter\",\"not_found\":\"No es troba\",\"odd\":\"ha de ser senar\",\"other_than\":\"ha de ser diferent de %{count}\",\"page_as_homepage\":\"No s\\'ha pogut desar els canvis en la p\u00E0gina perqu\u00E8 no es pot canviar la vibilidad d\\'una p\u00E0gina que s\\'utilitza com p\u00E0gina principal.\",\"present\":\"ha de ser blanc\",\"record_invalid\":\"La validaci\u00F3 va fallar: %{errors}\",\"restrict_dependent_destroy\":{\"one\":\"No es pot eliminar el registre perque existeix %{record} dependent\",\"other\":\"No es pot eliminar el registre perque hi ha %{record} dependents\"},\"taken\":\"no est\u00E0 disponible\",\"too_long\":{\"one\":\"\u00E9s massa llarg (1 car\u00E0cter m\u00E0xim)\",\"other\":\"\u00E9s massa llarg (%{count} car\u00E0cters m\u00E0xim)\"},\"too_short\":{\"one\":\"\u00E9s massa curt (1 car\u00E0cter m\u00EDnim)\",\"other\":\"\u00E9s massa curt (%{count} car\u00E0cters m\u00EDnim)\"},\"wrong_length\":{\"one\":\"no t\u00E9 la longitud correcta (1 car\u00E0cter exactament)\",\"other\":\"no t\u00E9 la longitud correcta (%{count} car\u00E0cters exactament)\"}},\"template\":{\"body\":\"Hi ha hagut problemes amb els seg\u00FCents camps:\",\"header\":{\"one\":\"No s\\'ha pogut desar aquest/a %{model} perqu\u00E8 hi ha 1 error\",\"other\":\"No s\\'ha pogut desar aquest/a %{model} perqu\u00E8 hi ha hagut %{count} errors\"}}},\"gobierto_admin\":{\"activities\":{\"activities_list\":{\"header\":{\"action\":\"Acci\u00F3\",\"date\":\"Data\",\"ip\":\"IP\",\"recipient\":\"Receptor\",\"subject\":\"Subjecte\",\"user\":\"Usuari\"}},\"index\":{\"title\":\"Log de activitats\"}},\"admin\":{\"invitation_acceptances\":{\"show\":{\"error\":\"Esta URL no sembla ser v\u00E0lida\",\"success\":\"Sessi\u00F3 iniciada correctament\"}},\"invitations\":{\"create\":{\"error\":\"Hi ha hagut un problema al enviar les invitacions\",\"success\":\"Les invitacions s\\'han enviat correctament\",\"success_with_errors\":\"Algunes invitacions no han pogut ser enviades: %{email_addresses}.\"},\"form\":{\"placeholders\":{\"emails\":\"maria@hotmail.com, felipe@gmail.com\"},\"sites\":\"Sites amb acc\u00E9s\",\"submit\":\"Enviar invitacions\"},\"new\":{\"title\":\"Enviar invitacions\"}},\"passwords\":{\"create\":{\"error\":\"L\\'adre\u00E7a de e-mail que has indicat no sembla ser v\u00E0lida\",\"success\":\"Per favor, revisa el teu email per rebre instruccions\"},\"edit\":{\"error\":\"Esta URL no sembla ser v\u00E0lida\",\"title\":\"Establir una nueva contrasenya\"},\"edit_form\":{\"submit\":\"Canviar contrasenya\"},\"new\":{\"title\":\"Recuperar la teva contrasenya\"},\"new_form\":{\"placeholders\":{\"email\":\"fsanchez@gmail.com\"},\"submit\":\"Solicitar recuperaci\u00F3\"},\"update\":{\"error\":\"Hi va haver un problema al canviar la teua contrasenya\",\"success\":\"Sessi\u00F3 iniciada correctament\"}},\"settings\":{\"edit\":{\"password_block\":\"Contrasenya\",\"placeholders\":{\"email\":\"Email\",\"name\":\"Nom\"},\"title\":\"Edita les teves dades\"},\"update\":{\"error\":\"No s\\'han pogut guardar les dades\",\"success\":\"Dades actualitzades correctament\"}}},\"admin_groups\":{\"admins\":{\"modal_index\":{\"add\":\"Afegir\",\"add_title\":\"Afegir usuari\",\"created_at\":\"Acc\u00E9s concedit\",\"delete\":\"Eliminar acc\u00E9s\",\"email\":\"correu-e\",\"user\":\"Usuari\",\"users_with_access\":\"Usuaris amb acc\u00E9s\"}},\"breadcrumb\":{\"admin_groups\":\"Grups\"},\"create\":{\"success\":\"El Grup d\\'admins s\\'ha creat correctament\"},\"edit\":{\"title\":\"Permisos del grup: %{name}\"},\"form\":{\"action_names\":{\"create_projects\":\"Crea projectes\",\"delete_projects_all\":\"Elimina projectes (tots)\",\"delete_projects_assigned\":\"Elimina projectes (assignats)\",\"edit\":\"Editar\",\"edit_projects_all\":\"Edita projectes (tots)\",\"edit_projects_assigned\":\"Edita projectes (assignats)\",\"edit_projects_permissions_all\":\"Edita permisos de projectes (tots)\",\"edit_projects_permissions_assigned\":\"Edita permisos de projectes (assignats)\",\"manage_dashboards\":\"Administrar dashboards\",\"manage_plans\":\"Administrar plans\",\"moderate_projects_all\":\"Modera projectes (tots)\",\"moderate_projects_assigned\":\"Modera projectes (assignats)\",\"publish_projects_all\":\"Publica projectes (tots)\",\"publish_projects_assigned\":\"Publica projectes (assignats)\",\"update_projects_as_minor_change_all\":\"Desa canvis menors en projectes (tots)\",\"update_projects_as_minor_change_assigned\":\"Desa canvis menors en projectes (assignats)\",\"view_dashboards\":\"Veure dashboards\",\"view_projects_all\":\"Veure projectes (tots)\",\"view_projects_assigned\":\"Veure projectes (assignats)\"},\"actions\":\"Accions\",\"all\":\"Tots\",\"members\":{\"one\":\"Hi ha un administrador amb aquest grup.\",\"other\":\"Hi ha %{count} administradors amb aquest grup.\",\"zero\":\"Aquest grup no t\u00E9 administradors.\"},\"modules_permissions\":\"M\u00F2duls\",\"people\":\"Persones\",\"placeholders\":{\"name\":\"Grup glo bal d\\'administradors\"},\"site_options_permissions\":\"Lloc web\"},\"index\":{\"header\":{\"admin_group\":\"Grup\"},\"new\":\"Nou\",\"title\":\"Grups\"},\"new\":{\"title\":\"Nou grup\"},\"update\":{\"success\":\"El Grup d\\'admins s\\'ha actualizat correctament\"}},\"admin_mailer\":{\"invitation_instructions\":{\"bye\":\"Salutacions\",\"click_link\":\"Has estat convidat a col\u00B7laborar a la nostra plataforma web. Fes clic en el seg\u00FCent enlla\u00E7 per a crear el teu compte.\",\"hi\":\"Hola\",\"subject\":\"Has estat convidat a col\u00B7laborar a Gobierto\"},\"reset_password_instructions\":{\"bye\":\"Salutacions\",\"click_link\":\"Fes clic en el seg\u00FCent enlla\u00E7 per restaurar la teva contrasenya\",\"hi\":\"Hola\",\"subject\":\"Instruccions per activar el teu compte a Gobierto\"}},\"admin_unauthorized\":\"No tens prou permisos per a realitzar aquesta acci\u00F3\",\"admins\":{\"create\":{\"success\":\"El Admin s\\'ha creat correctament\"},\"edit\":{\"title\":\"Editar Administrador\"},\"form\":{\"activity_block\":\"Log d\\'actividad\",\"admin_groups_block\":\"Grup\",\"authorization_level\":{\"disabled\":\"Deshabilitat\",\"manager\":\"Manager\",\"regular\":\"Regular\"},\"password_block\":\"Contrasenya\",\"placeholders\":{\"email\":\"fgonzalez@gmail.com\",\"name\":\"Fernando Gonz\u00E1lez\"},\"sites_block\":\"Sites amb acc\u00E9s\",\"sites_block_description\":\"Aquest usuari pot accedir a administrar:\"},\"index\":{\"groups_and_permissions\":\"Grups i permisos\",\"header\":{\"admin\":\"Administrador\",\"created_at\":\"Creat\",\"email\":\"Email\",\"groups\":\"Grups\",\"last_sign_in_at\":\"\u00DAltim login\",\"primary_api_token\":\"Token de l\\'API primari\",\"role\":\"Rol\"},\"new\":\"Nou Administrador\",\"send_invitations\":\"Enviar invitacions\",\"title\":\"Administradors\",\"users_section\":\"Usuaris\",\"view_admin\":\"Veure Administrador\"},\"new\":{\"title\":\"Nou Administrador\"},\"show\":{\"admin_tokens\":\"Tokens d\\'autoritzaci\u00F3\",\"copy_to_clipboard\":\"Copia\",\"primary_api_token\":\"Token primari\"},\"update\":{\"success\":\"El Admin s\\'ha actualizat correctament\"}},\"api_tokens\":{\"api_token\":{\"primary\":\"Primari\"},\"edit\":{\"api_token\":\"Token de l\\'API %{name}\"},\"form\":{\"placeholders\":{\"domain\":\"www.example.org\",\"name\":\"Token per a aplicacions externes\"},\"update_token\":\"Actualitzar Token\"},\"list\":{\"header\":{\"created_at\":\"Creat\",\"domain\":\"Domini\",\"name\":\"Nom\",\"token\":\"Token\"},\"new\":\"Nou\",\"title\":\"Tokens de l\\'API\"},\"new\":{\"api_token\":\"Nou Token de l\\'API\"}},\"census\":{\"imports\":{\"create\":{\"error\":\"Hi ha hagut un error al importar el teu arxiu. Per favor, tria de nou.\",\"success\":\"S\\'ha importat %{record_count} registres\"},\"file_format_notes\":{\"instructions\":\"El arxiu a carregar deu de ser un CSV, sense fila de capcalera, amb les columnes de dades que vulguem que el usuari hagi de verificar. Per exemple, si volem validar DNI, data de naixement i codi postal, deurem preparar un arxiu com aquest:\"},\"form\":{\"disable_with\":\"Carregant...\",\"submit\":\"Carregant archiu de cens\"},\"new\":{\"final_notes\":\"es sustituir\u00E0n tots els registres, i si alg\u00FAn DNI d\\'usuari verificat deixa d\\'estar present, el usuari deixar\u00E1 de tindre acc\u00E9s\",\"import_status\":\"El cens ha sigut actualitzat per \u00FAltima volta el %{created_at} per %{admin_name} (%{admin_email}). El arxiu t\u00E9 %{imported_records} registres.\",\"title\":\"Configuraci\u00F3 de cens\"}}},\"custom_fields_plugins\":{\"budgets\":{\"area\":\"\u00C0rea\",\"assigned_amount\":\"Assignat\",\"budget_line\":\"Partida pressupost\u00E0ria\",\"custom\":\"Personalitzada\",\"economic\":\"Econ\u00F2mica\",\"full_amount\":\"Total\",\"functional\":\"Funcional\",\"not_available\":\"No disp.\",\"weight\":\"Pes\",\"year\":\"Any\"},\"common\":{\"custom\":\"Personalitzada\",\"economic\":\"Econ\u00F2mica\",\"functional\":\"Funcional\"},\"data_grid\":{\"remove_rows\":\"Eliminar files seleccionades\",\"select_deselect_all\":\"Seleccionar / Deseleccionar totes\"},\"progress\":{\"progress\":\"Progr\u00E9s\"},\"table\":{\"remove_rows\":\"Eliminar files seleccionades\",\"select_deselect_all\":\"Seleccionar / Deseleccionar totes\"}},\"custom_sessions\":{\"ldap_strategy\":{\"form\":{\"identifier\":\"Identificador\",\"password\":\"Contrasenya\",\"submit\":\"Enviar\"}}},\"gobierto_attachments\":{\"file_attachments\":{\"create\":{\"success_html\":\"El document s\\'ha creat correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure el document\\\\u003c/a\\\\u003e.\"},\"destroy\":{\"success\":\"El document s\\'ha archivat correctament\"},\"edit\":{\"title\":\"Modifica adjunt\"},\"form\":{\"file_constraints\":\"Adjuntar document\",\"placeholders\":{\"description\":\"Descripci\u00F3 del fitxer\",\"name\":\"Nom del document\",\"slug\":\"nom-del-document\"}},\"index\":{\"add_new_attachment\":\"Afegeix nou document\",\"collections\":\"Col\u00B7leccions\",\"created_at\":\"Creat\",\"header\":{\"collection\":\"Col\u00B7lecci\u00F3\",\"file_attachments\":\"Documents\"},\"latest_editions\":\"\u00DAltimes edicions\",\"new\":\"Nova\",\"title\":\"Documents\",\"updated_at\":\"Actualitzat\",\"view_collection\":\"Veure col\u00B7lecci\u00F3\"},\"new\":{\"title\":\"Nou document\"},\"recover\":{\"success\":\"El document s\\'ha recuperat correctament\"},\"update\":{\"success_html\":\"El document s\\'ha actualitzat correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure el document\\\\u003c/a\\\\u003e.\"}}},\"gobierto_budgets\":{\"feedback\":{\"index\":{\"answer1_0\":\"Si\",\"answer1_1\":\"No\",\"answer2_0\":\"Poc\",\"answer2_1\":\"Apropiat\",\"answer2_2\":\"Molt\",\"budget\":\"Pressupostat\",\"last\":\"\u00DAltima\",\"total_feedback\":\"Total opinions\",\"understand\":\"Ho entens?\",\"you_think\":\"Et sembla...\"}},\"options\":{\"index\":{\"comparison_compare_municipalities_desc\":\"Mostra una taula amb municipis espec\u00EDfics (amb dades disponbiles en presupuestos.gobierto.es - fes all\u00ED la comparaci\u00F3 avan\u00E7 d\\'incluir-los)\",\"comparison_context_table_enabled_desc\":\"Mostra la taula que ofereix context amb mitjanes provincials, auton\u00F2miques o estatals\",\"comparison_show_widget_desc\":\"Facilita l\\'acc\u00E9s a la ferramenta de comparaci\u00F3 de pressupostos de Gobierto: presupuestos.gobierto.es\",\"comparison_tool_enabled_desc\":\"Habilita ferramentes de comparaci\u00F3\",\"confirm_update_annual_data\":\"Comen\u00E7ar\u00E0 un proc\u00E9s en segon pla per actualitzar els fitxers. Continuar?\",\"elaboration\":\"Elaboraci\u00F3\",\"elaboration_desc1\":\"Habilita la secci\u00F3 d\\'Elaboraci\u00F3 del pressupost\",\"elaboration_desc2_html\":\"\\\\u003cstrong\\\\u003eImportant:\\\\u003c/strong\\\\u003e es necessari carregar les dades d\\'elaboraci\u00F3 avans. Contacta amb el teu administrador sin tens dubtes.\",\"feedback\":\"Micro-participacions\",\"feedback_desc\":\"Habilita la opci\u00F3 per a que els visitants opinen sobre les partides del pressupost\",\"feedback_emails_desc\":\"Les participacions (opini\u00F3 sobre partides i petici\u00F3 de m\u00E9s informaci\u00F3) s\\'enviar\u00E0n a aquesta direcci\u00F3\",\"indicators\":\"Indicadors\",\"indicators_desc1\":\"Habilita la secci\u00F3 Indicadors\",\"options\":\"Opcions\",\"providers\":\"Prove\u00EFdors i Factures\",\"providers_desc1\":\"Habilita la secci\u00F3 Prove\u00EFdors i Factures\",\"receipt\":\"Recibo de tus impuestos\",\"receipt_desc1\":\"Habilita la secci\u00F3n El recibo de tus impuestos\",\"receipt_desc2_html\":\"\\\\u003cstrong\\\\u003eImportante:\\\\u003c/strong\\\\u003e debes de rellenar el JSON con los datos.\",\"update_annual_data\":\"Generar fitxers de partides del pressupost per any\"},\"update\":{\"error\":\"No s\\'han pogut guardar les opcions: %{validation_errors}\",\"success\":\"Opcions desades correctament\"},\"update_annual_data\":{\"success\":\"S\\'ha llan\u00E7at un proc\u00E9s per generar els fitxers de partides del pressupost per any\"}},\"shared\":{\"tabs\":{\"budgets\":\"Pressupost\",\"feedback\":\"Opinions\",\"options\":\"Opcions\"}}},\"gobierto_calendars\":{\"calendar_configuration\":{\"edit\":{\"add_rule\":\"Crear regla\",\"calendar_integration\":\"Integraci\u00F3 de calendari\",\"confirm_sync\":\"Est\u00E0s segur?\",\"filter_events\":\"Filtrat d\\'esdeveniments\",\"filter_events_desc\":\"Quan s\\'importa un esdeveniment...\",\"filter_events_label\":\"Si el\",\"google_calendar\":\"Google Calendar\",\"ibm_notes\":\"IBM Notes\",\"labels\":{\"ibm_notes_pwd\":\"Contrasenya\",\"ibm_notes_url\":\"URL del calendari d\\'IBM Notes\",\"ibm_notes_usr\":\"Compte de IBM Notes\",\"microsoft_exchange_pwd\":\"Contrasenya\",\"microsoft_exchange_url\":\"URL del calendari\",\"microsoft_exchange_usr\":\"Compte de Microsoft Exchange\"},\"last_sync\":\"Darrera sincronitzaci\u00F3\",\"manage\":\"Gestiona la configuraci\u00F3 del calendari\",\"microsoft_exchange\":\"Microsoft Exchange\",\"placeholders\":{\"filter_text\":\"Text pel qual filtrar\",\"ibm_notes_url\":\"ex. https://example.com/mail/abc.nsf/api/calendar/events\",\"microsoft_exchange_url\":\"ex. https://example.com/ews/exchange.asmx\",\"username\":\"ex. perico85\"},\"remove_configuration\":\"Eliminar configuraci\u00F3\",\"sync\":\"Sincronitzar ara\",\"without_description\":\"No importar la descripci\u00F3 de l\\'esdeveniment\"},\"gobierto_people_person_navigation\":{\"calendar_configuration\":\"Configuraci\u00F3 del calendari\"},\"google_calendar_fields\":{\"calendar_configured\":\"Actualment esta persona t\u00E9 aquestos calendaris configurats\",\"share_link\":\"Comparteix aquest enlla\u00E7 amb el alt c\u00E0rrec per a permetre a Gobierto llegir els seus esdeveniments de Google Calendar:\"},\"sync_calendars\":{\"success\":\"Sincronitzaci\u00F3 realitzada\"},\"update\":{\"success\":\"Prefer\u00E8ncies actualitzades correctament\"}},\"collections\":{\"index\":{\"add_new_event\":\"Afegeix nou esdeveniment\",\"collections\":\"Calendaris\",\"header\":{\"collection\":\"Calendari\",\"events\":\"Esdeveniments\"},\"latest_editions\":\"\u00DAltims esdeveniments editats\",\"new\":\"Nou\",\"title\":\"Agendas\",\"view_collection\":\"Veure col\u00B7lecci\u00F3\"}},\"events\":{\"attendees_form\":{\"header\":{\"charge\":\"C\u00E0rrec\",\"name\":\"Nom\",\"person\":\"Persona\"},\"title\":\"Assistents\",\"view_person\":\"Veure persona\"},\"create\":{\"success_html\":\"El esdeveniment s\\'ha creat correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure el esdeveniment\\\\u003c/a\\\\u003e.\"},\"destroy\":{\"success\":\"El esdeveniment s\\'ha archivat correctament\"},\"edit\":{\"title\":\"Editar event\"},\"form\":{\"placeholders\":{\"slug\":\"event\",\"title\":\"T\u00EDtol del event\"},\"state\":{\"pending\":\"Pendent\",\"published\":\"Publicat\"}},\"index\":{\"configuration\":\"Configuraci\u00F3\",\"header\":{\"date\":\"Data\",\"event\":\"Dsdeveniment\",\"location\":\"Localitzaci\u00F3\",\"status\":\"Estat\"},\"new\":\"Nou esdeveniment\",\"past_events\":\"Esdeveniments passats\",\"pending_events\":\"Pendents de moderar\",\"published_events\":\"Esdeveniments publicats\",\"upcoming_events\":\"Pr\u00F2xims\",\"view_event\":\"Veure esdeveniment\",\"visibility_level\":{\"archived\":\"Archivat\",\"pending\":\"Borrador\",\"published\":\"Publicat\"}},\"locations_form\":{\"header\":{\"address\":\"Adre\u00E7a\",\"place\":\"Lloc\"},\"title\":\"Lloc\"},\"new\":{\"title\":\"Nou event\"},\"person_breadcrumb\":{\"back_to_collections\":\"\\\\u003c Tornar a agendes\"},\"recover\":{\"success\":\"El esdeveniment s\\'ha recuperat correctament\"},\"update\":{\"success_html\":\"El esdeveniment s\\'ha actualitzat correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure el esdeveniment\\\\u003c/a\\\\u003e.\"}}},\"gobierto_cms\":{\"file_attachments\":{\"index\":{\"title\":\"Documents\"}},\"pages\":{\"create\":{\"success_html\":\"La p\u00E0gina ha estat creada correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure la p\u00E0gina\\\\u003c/a\\\\u003e.\"},\"destroy\":{\"success\":\"La p\u00E0gina ha estat eliminada correctament\"},\"edit\":{\"title\":\"Editar p\u00E0gina\"},\"form\":{\"include_in_section\":\"Incloure a la secci\u00F3\",\"new_section\":\"(Nova secci\u00F3)\",\"placeholders\":{\"slug\":\"sobre-aquesta-web\",\"title\":\"T\u00EDtol de la p\u00E0gina\"},\"section\":\"Secci\u00F3\",\"visibility_level\":{\"active\":\"Publicada\",\"draft\":\"Borrador\"},\"without_parent\":\"(sense pare)\"},\"index\":{\"add_new\":\"Afegir nova\",\"collections\":\"Col\u00B7leccions\",\"header\":{\"collection\":\"Col\u00B7lecci\u00F3\",\"pages\":\"P\u00E0gines\",\"section\":\"Secci\u00F3\"},\"latest_editions\":\"\u00DAltimes edicions\",\"new\":\"Nova\",\"sections\":\"Seccions\",\"title\":\"CMS\",\"view_collection\":\"Veure col\u00B7lecci\u00F3\",\"view_section\":\"Veure secci\u00F3\"},\"new\":{\"title\":\"Nova p\u00E0gina\"},\"recover\":{\"success\":\"La p\u00E0gina ha estat recuperada correctament\"},\"update\":{\"success_html\":\"La p\u00E0gina ha estat actualitzada correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure la p\u00E0gina\\\\u003c/a\\\\u003e.\"}},\"sections\":{\"create\":{\"success\":\"La secci\u00F3 ha estat creada correctament.\"},\"edit_modal\":{\"title\":\"Editar secci\u00F3\"},\"form\":{\"placeholders\":{\"slug\":\"sobre-aquesta-seccio\",\"title\":\"T\u00EDtol de la secci\u00F3\"}},\"index\":{\"header\":{\"pages\":\"P\u00E0gines\",\"title\":\"Secci\u00F3\"},\"new\":\"Nova\",\"title\":\"Seccions\",\"view\":\"Veure secci\u00F3\"},\"new_modal\":{\"title\":\"Nova secci\u00F3\"},\"pages_filter\":{\"page_help\":\"Arrossega i deixa anar a la part esquerra per col\u00B7locar aquesta p\u00E0gina al men\u00FA\"},\"show\":{\"collapse\":\"Colapsar tot\",\"configuration\":\"Configuraci\u00F3\",\"delete_element\":\"Eliminar element del men\u00FA\",\"expand\":\"Expandir tot\",\"help\":\"Configureu els elements del vostre men\u00FA. Arrossega el tauler dret al men\u00FA de la esquerra\",\"last_edited_pages\":\"\u00DAltimes p\u00E0gines editades\",\"placeholders\":{\"search\":\"Escriu el t\u00EDtol de la p\u00E0gina per cercar\"},\"sections\":\"Seccions\",\"select_page\":\"Selecciona una p\u00E0gina per incloure en la secci\u00F3\",\"view\":\"Veure secci\u00F3\"},\"update\":{\"success\":\"La secci\u00F3 ha estat actualitzada correctament.\"}}},\"gobierto_common\":{\"collections\":{\"check_container_presence\":{\"container_not_found\":\"El recurs a qu\u00E8 pertany la col\u00B7lecci\u00F3 no es troba\"},\"create\":{\"success\":\"La col\u00B7lecci\u00F3 s\\'ha creat correctament.\"},\"edit_modal\":{\"title\":\"Edita col\u00B7lecci\u00F3\"},\"form\":{\"placeholders\":{\"slug\":\"sobre-aquesta-colleccio\",\"title\":\"Nom de la col\u00B7lecci\u00F3\"}},\"index\":{\"collections\":\"Col\u00B7leccions\",\"header\":{\"collection\":\"T\u00EDtol\",\"pages\":\"P\u00E1ginas\"},\"latest_editions\":\"\u00DAltimes edicions\",\"new\":\"Nou\",\"title\":\"CMS\",\"view_collection\":\"Veure col\u00B7lecci\u00F3\"},\"new_modal\":{\"title\":\"Nova col\u00B7lecci\u00F3\"},\"show\":{\"configuration\":\"Configuraci\u00F3\",\"file_attachments\":{\"created_at\":\"Creat\",\"file_name\":\"Nom del fitxer\",\"view\":\"Veure fitxer\"},\"new_attachment\":\"Nou\",\"new_page\":\"Nova\",\"pages\":{\"created_at\":\"Creada\",\"public\":\"P\u00FAblica\",\"published_on\":\"Publicada\",\"updated_at\":\"Actualitzada\",\"view\":\"Veure p\u00E0gina\",\"visibility_level\":{\"active\":\"Publicada\",\"archived\":\"Arxivada\",\"draft\":\"Borrador\"}}},\"update\":{\"success\":\"La col\u00B7lecci\u00F3 s\\'ha actualitzat correctament.\"}},\"content_blocks\":{\"create\":{\"success\":\"El bloc s\\'ha creat correctament\"},\"destroy\":{\"success\":\"El bloc s\\'ha eliminat correctament\"},\"edit\":{\"title\":\"Editar bloc\"},\"form\":{\"add_child\":\"Afegir columna\",\"fields\":\"Columnes\",\"title\":\"Nom del bloc\"},\"new\":{\"title\":\"Afegir bloc\"},\"update\":{\"success\":\"El bloc s\\'ha actualitzat correctament\"}},\"custom_fields\":{\"custom_fields\":{\"create\":{\"success\":\"Camp personalitzat creat correctament\"},\"date_options\":{\"date\":\"Data\",\"datetime\":\"Data i hora\",\"type\":\"Tipus\"},\"destroy\":{\"failed\":\"Hi ha hagut un error que ha impedit eliminar el camp personalitzat\",\"success\":\"Camp personalitzat eliminat correctament\"},\"edit\":{\"instance_title\":\"Edita %{field_name} de %{instance_name}\",\"title\":\"Edita %{name}\"},\"form\":{\"confirm\":\"Est\u00E0s segur?\",\"crop\":\"Retallar\",\"multiple\":\"M\u00FAltiple\",\"type\":\"Opcions de contingut\"},\"index\":{\"instance_title\":\"Camps personalitzats de %{instance_name}\",\"localized_custom_fields\":\"Camps tradu\u00EFbles\",\"new\":\"Afegir nou camp\",\"not_localized_custom_fields\":\"Camps no tradu\u00EFbles\",\"title\":\"Camps personalitzats\"},\"new\":{\"instance_title\":\"Nou camp de %{instance_name}\",\"title\":\"Nou camp\"},\"new_option\":{\"cancel_new_option\":\"Cancel\u00B7lar\",\"create\":\"Crear opci\u00F3\",\"new\":\"Nova opci\u00F3\"},\"numeric_options\":{\"currency\":\"Monet\u00E0ria\",\"generic\":\"Gen\u00E8rica\",\"unit_type\":\"Tipus d\\'unitat\"},\"options_form\":{\"add_option\":\"Afegir opci\u00F3\"},\"plugin\":{\"budgets\":\"Pressupostos\",\"progress\":\"Progr\u00E9s\",\"table\":\"Taula\",\"type\":\"Tipus\"},\"plugin_configuration_form\":{\"configuration\":\"Configuraci\u00F3\"},\"update\":{\"success\":\"Camp personalitzat actualitzat correctament\"},\"vocabulary_select\":{\"vocabulary\":\"Vocabulari d\\'opcions\"},\"vocabulary_type_select\":{\"multiple_select\":\"Selecci\u00F3 m\u00FAltiple\",\"single_select\":\"Selecci\u00F3 \u00FAnica\",\"tags\":\"Tags\",\"type\":\"Tipus\"}},\"forms\":{\"new_gallery_image\":{\"add_item\":\"Afegir imatge\",\"cancel_new_item\":\"Cancel\"}},\"module_resources\":{\"index\":{\"custom_fields_for_instances_of\":\"Camps personalitzats per a inst\u00E0ncies de %{name}\",\"empty\":\"De moment no hi ha cap model amb camps personalitzats habilitats\"}}},\"dynamic_content\":{\"form\":{\"add_child\":\"Afegir nou registre\",\"add_content_block\":\"Afegir nou bloc\",\"add_record\":\"Afegir\",\"attachment\":\"Adjunt\",\"attachment_file\":\"Arxiu adjunt\",\"cancel_record\":\"Cancel\u00B7lar\",\"delete_content_block\":\"Eliminar bloc\",\"delete_content_block_confirm\":\"Est\u00E0s segur de suprimir aquest bloc?\",\"download_attachment\":\"Descarregar adjunt\",\"edit_content_block\":\"Editar\",\"remove_attachment\":\"Eliminar adjunt\",\"save_record\":\"Guardar\"}},\"ordered_terms\":{\"create\":{\"success\":\"El terme s\\'ha creat correctament.\"},\"destroy\":{\"destroy_failed\":\"El terme no ha pogut ser eliminat: %{validation_errors}\",\"success\":\"El terme ha estat eliminat correctament.\"},\"edit_modal\":{\"title\":\"Edita %{term}\"},\"form\":{\"placeholders\":{\"description\":\"Descripci\u00F3 del terme\",\"external_id\":\"ID001\",\"name\":\"Nom del terme\",\"slug\":\"terme\"}},\"index\":{\"collapse_all\":\"Plegar tot\",\"explore\":\"Explora\",\"new\":\"Nou\",\"open_all\":\"Desplegar tot\",\"title\":\"Termes de %{vocabulary}\"},\"new_modal\":{\"title\":\"Nou terme\"},\"terms_tree\":{\"delete_confirm\":\"Est\u00E0s segur? Aquesta operaci\u00F3 no \u00E9s reversible\"},\"update\":{\"success\":\"El terme s\\'ha actualitzat correctament.\"}},\"terms\":{\"create\":{\"success\":\"El terme s\\'ha creat correctament.\"},\"destroy\":{\"destroy_failed\":\"El terme no ha pogut ser eliminat.\",\"success\":\"El terme ha estat eliminat correctament.\"},\"edit\":{\"edit\":\"Editar %{term}\"},\"form\":{\"placeholders\":{\"description\":\"El cavall \u00E9s un mam\u00EDfer herb\u00EDvor\",\"name\":\"Cavall\",\"slug\":\"regne-animal-cavall\"}},\"index\":{\"delete_confirm\":\"Est\u00E0s segur? Aquesta operaci\u00F3 no \u00E9s reversible\",\"header\":{\"description\":\"Descripci\u00F3\",\"level\":\"Nivell\",\"name\":\"Nom\",\"parent\":\"Pare\"},\"new\":\"Nou\",\"title\":\"Termes de %{vocabulary}\"},\"new\":{\"new\":\"Nou Terme\"},\"update\":{\"success\":\"El terme s\\'ha actualitzat correctament.\"}},\"vocabularies\":{\"create\":{\"success\":\"El vocabulari s\\'ha creat correctament.\"},\"destroy\":{\"destroy_failed\":\"El vocabulari no ha pogut ser eliminat perqu\u00E8 est\u00E0 en \u00FAs.\",\"success\":\"El vocabulari ha estat eliminat correctament.\"},\"edit\":{\"edit\":\"Editar %{vocabulary}\"},\"edit_modal\":{\"title\":\"Editar %{vocabulary}\"},\"form\":{\"placeholders\":{\"name\":\"Regne animal\",\"slug\":\"regne_animal\"}},\"index\":{\"delete_confirm\":\"Est\u00E0s segur? Aquesta operaci\u00F3 no \u00E9s reversible\",\"header\":{\"name\":\"Tema\",\"terms\":\"Termes\"},\"new\":\"Nou\",\"title\":\"Vocabularis\",\"view_vocabulary\":\"Veure termes\"},\"new\":{\"new\":\"Nou Vocabulari\"},\"new_modal\":{\"title\":\"Nou Vocabulari\"},\"show\":{\"created_at\":\"Creaci\u00F3\",\"terms\":\"Termes\",\"terms_count\":\"%{count} termes\"},\"update\":{\"success\":\"El vocabulari s\\'ha actualitzat correctament.\"}}},\"gobierto_core\":{\"site_templates\":{\"create\":{\"success\":\"La plantilla s\\'ha editat correctament.\"},\"destroy\":{\"success\":\"La plantilla s\\'ha esborrat correctament.\"},\"update\":{\"success\":\"La plantilla s\\'ha actualitzat correctament.\"}},\"templates\":{\"edit\":{\"preview\":\"Previsualitzar\",\"reset\":\"Resetejar\",\"reset_title\":\"Descarta els canvis guardats, i tornar a la plantilla original (ull, no podr\u00E0s recuperar la plantilla que hagis personalitzat)\",\"save\":\"Desar\"},\"index\":{\"edit_templates\":\"Edita plantilles\"}}},\"gobierto_dashboards\":{\"dashboards\":{\"destroy\":{\"success\":\"El dashboard s\\'ha esborrat correctament.\"},\"list_modal\":{\"add\":\"Afegiu-hi\",\"new\":\"\u00BFNecessiteu crear un nou dashboard?\",\"no_dashboards\":\"No hi ha cap dashboard\",\"title\":\"Seleccioneu el dashboard on incloure aquest indicador\"}}},\"gobierto_data\":{\"configuration\":{\"settings\":{\"edit\":{\"api_settings\":\"Configuraci\u00F3 de l\\'API\",\"db_config_placeholder\":\"{\\\\\"pool\\\\\":5, \\\\\"adapter\\\\\":\\\\\"postgresql\\\\\", \\\\\"database\\\\\":\\\\\"gobierto_test\\\\\", \\\\\"encoding\\\\\":\\\\\"unicode\\\\\", \\\\\"password\\\\\":\\\\\"gobierto\\\\\", \\\\\"username\\\\\":\\\\\"gobierto\\\\\"}\",\"frontend\":\"Front-end\",\"frontend_enabled\":\"Visible\",\"title\":\"Configuraci\u00F3\",\"update\":\"Actualitzar\"},\"title\":\"Preferencies\",\"update\":{\"success\":\"Configuraci\u00F3 guardada correctament\"}}},\"datasets\":{\"create\":{\"success\":\"El conjunt de dades s\\'ha creat correctament.\"},\"destroy\":{\"success\":\"El conjunt de dades s\\'ha esborrat correctament.\"},\"form\":{\"placeholders\":{\"name\":\"Habitants\",\"slug\":\"habitants\"}},\"index\":{\"header\":{\"name\":\"Nom\",\"status\":\"Estat\",\"table_name\":\"Nom de la taula\"},\"new\":\"Nou\",\"title\":\"Conjunts de dades\",\"view_dataset\":\"Veure conjunt de dades\"},\"new\":{\"title\":\"Nou conjunt de dades\"},\"update\":{\"success\":\"El conjunt de dades s\\'ha actualitzat correctament.\"}}},\"gobierto_investments\":{\"projects\":{\"create\":{\"success\":\"El projecte s\\'ha creat correctament.\"},\"destroy\":{\"success\":\"El projecte s\\'ha esborrat correctament.\"},\"form\":{\"placeholders\":{\"external_id\":\"ID001\",\"title\":\"Centre esportiu\"}},\"index\":{\"header\":{\"external_id\":\"ID extern\",\"title\":\"T\u00EDtol\"},\"new\":\"Nou\",\"title\":\"Projectes\",\"view_project\":\"Veure projecte\"},\"new\":{\"title\":\"Nou projecte\"},\"update\":{\"success\":\"El projecte s\\'ha actualitzat correctament.\"}}},\"gobierto_observatory\":{\"configuration\":{\"settings\":{\"edit\":{\"title\":\"Configuraci\u00F3 del observatori\",\"update\":\"Actualitzar\"},\"title\":\"Preferencies\",\"update\":{\"error\":\"Hi ha hagut un error al desar la configuraci\u00F3: %{validation_errors}\",\"success\":\"Configuraci\u00F3 guardada correctament\"}}}},\"gobierto_people\":{\"configuration\":{\"settings\":{\"edit\":{\"agendas\":\"Agendes\",\"blogs\":\"Blogs\",\"departments\":\"Departaments\",\"gifts\":\"Obsequis\",\"interest_groups\":\"Grups d\\'inter\u00E8s\",\"invitations\":\"Invitacions\",\"officials\":\"Persones\",\"placeholders\":{\"home_text_ca\":\"Text home catal\u00E0\",\"home_text_en\":\"Text home angl\u00E9s\",\"home_text_es\":\"Text home espanyol\"},\"political_groups_vocabulary\":\"Vocabulari de grups pol\u00EDtics\",\"statements\":\"Declaracions\",\"submodules_enabled\":\"Subm\u00F2duls habilitats\",\"trips\":\"Viatges\",\"update\":\"Actualitzar\"},\"update\":{\"error\":\"Hi ha hagut un error guardant les prefer\u00E8ncies\",\"success\":\"Prefer\u00E8ncies actualitzades correctament\"}},\"title\":\"Configuraci\u00F3\"},\"people\":{\"create\":{\"success_html\":\"El perfil s\\'ha creat correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure la persona\\\\u003c/a\\\\u003e.\"},\"edit\":{\"title\":\"Editar persona\"},\"form\":{\"avatar_file_constraints\":\"Avatar de usuari (fitxer de 500x500)\",\"bio_file_constraints\":\"Adjuntar fitxer (PDF)\",\"category\":{\"executive\":\"Directiu\",\"politician\":\"Pol\u00EDtic\"},\"crop\":\"Retallar\",\"party\":{\"government\":\"Equip de Govern\",\"opposition\":\"Oposici\u00F3\"},\"placeholders\":{\"charge\":\"Alcalde\",\"email\":\"Correu-e\",\"name\":\"Rafael Garc\u00EDa\"}},\"index\":{\"configuration\":\"Configuraci\u00F3\",\"drag_to_sort\":\"Arrastra per a ordenar\",\"header\":{\"charge\":\"C\u00E0rrec\",\"events\":\"Esdeveniments\",\"person\":\"Persona\",\"posts\":\"Posts\",\"statements\":\"Declaracions\",\"status\":\"Estat\"},\"new\":\"Nova persona\",\"no_permissions\":\"No tens permisos per editar aquesta persona. Si la necessites editar, parla amb l\\'administrador\",\"title\":\"Persones\",\"view_person\":\"Veure persona\",\"visibility_level\":{\"active\":\"Publicat\",\"draft\":\"Borrador\"}},\"navigation\":{\"agenda\":\"Agenda\",\"person\":\"Persona\",\"posts\":\"Blog\",\"statements\":\"Declaracions\"},\"new\":{\"title\":\"Nova persona\"},\"person_events\":{\"index\":{\"title\":\"Agenda\"}},\"person_posts\":{\"create\":{\"success_html\":\"El post s\\'ha creat correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure el post\\\\u003c/a\\\\u003e.\"},\"edit\":{\"title\":\"Editar post\"},\"form\":{\"placeholders\":{\"tags\":\"personal, la meva carrera, sobre mi\",\"title\":\"Sobre mi\"}},\"index\":{\"header\":{\"date\":\"Data\",\"status\":\"Estat\",\"tags\":\"Tags\",\"title\":\"T\u00EDtol\"},\"new\":\"Nou post\",\"title\":\"Blog\",\"view_post\":\"Veure post\",\"visibility_level\":{\"active\":\"Publicat\",\"draft\":\"Borrador\"}},\"new\":{\"title\":\"Nou post\"},\"update\":{\"success_html\":\"El post s\\'ha actualitzat correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure el post\\\\u003c/a\\\\u003e.\"}},\"person_statements\":{\"create\":{\"success_html\":\"La declaraci\u00F3 s\\'ha creat correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure la declaraci\u00F3\\\\u003c/a\\\\u003e.\"},\"edit\":{\"title\":\"Editar declaraci\u00F3\"},\"form\":{\"placeholders\":{\"title\":\"Declaraci\u00F3 de b\u00E9ns i activitats\"}},\"index\":{\"header\":{\"date\":\"Data\",\"statement\":\"Declaraci\u00F3\",\"status\":\"Estat\"},\"new\":\"Nova declaraci\u00F3\",\"title\":\"Declaracions\",\"view_statement\":\"Veure declaraci\u00F3\",\"visibility_level\":{\"active\":\"Publicada\",\"draft\":\"Borrador\"}},\"new\":{\"title\":\"Nou declaraci\u00F3\"},\"update\":{\"success_html\":\"La declaraci\u00F3 s\\'ha actualitzat correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure la declaraci\u00F3\\\\u003c/a\\\\u003e.\"}},\"update\":{\"success_html\":\"El perfil s\\'ha actualitzat correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure la persona\\\\u003c/a\\\\u003e.\"}},\"settings\":{\"title\":\"Preferencies\"}},\"gobierto_plans\":{\"admin_mailer\":{\"project_attributes_changed\":{\"bye\":\"Salutacions\",\"edition_change\":\"el contingut\",\"hi\":\"Hola\",\"intro_html\":\"%{author_name} ha actualitzat %{updates_list} al projecte %{project_link} del pla %{plan_title}.\",\"minor_change_notice\":\"El canvi s\\'ha desat com a menor amb el que no s\\'ha creat una nova versi\u00F3.\",\"moderation_stage_change\":\"l\\'estat de moderaci\u00F3 a %{value}\",\"subject\":\"S\\'ha modificat un projecte en el pla %{plan_title} de %{site_name}\",\"subject_with_changes\":\"S\\'ha modificat un projecte en el pla %{plan_title} de %{site_name} a %{changes}\",\"visibility_level_change\":\"l\\'estat de publicaci\u00F3 a %{value}\",\"visibility_levels\":{\"draft\":\"No publicat\",\"published\":\"Publicat\"}},\"project_created\":{\"bye\":\"Salutacions\",\"hi\":\"Hola\",\"intro_html\":\"%{author_name} ha creat un nou projecte %{project_link} en el pla %{plan_title}\",\"subject\":\"S\\'ha creat un projecte en el pla %{plan_title} de %{site_name}\"},\"project_deleted\":{\"bye\":\"Salutacions\",\"hi\":\"Hola\",\"intro_html\":\"%{author_name} ha eliminat el projecte %{project_name} del pla %{plan_link}\",\"subject\":\"S\\'ha eliminat un projecte del pla %{plan_title} de %{site_name}\"}},\"categories\":{\"calculated_headers\":{\"items\":\"Elements\",\"progress\":\"Progr\u00E9s\"},\"create\":{\"success\":\"La categoria s\\'ha creat correctament.\"},\"destroy\":{\"destroy_failed\":\"No pots esborrar una categoria mentre tingui projectes o altres elements associats.\",\"success\":\"La categoria ha estat eliminat correctament.\"},\"index\":{\"progress_excluded_nodes_explanation\":\"S\\'han descartat alguns projectes del c\u00E0lcul perqu\u00E8 tenen algun dels seg\u00FCents estats exclosos: %{statuses}\"},\"plan_summary\":{\"global_progress\":\"Progr\u00E9s global\",\"projects\":\"Projectes\"},\"update\":{\"success\":\"La categoria s\\'ha actualitzat correctament.\"}},\"dashboards\":{\"index\":{\"headers\":{\"status\":\"Visibilitat\",\"title\":\"T\u00EDtol\",\"updated\":\"Actualitzat\"},\"new\":\"Nou\",\"visibility_level\":{\"active\":\"P\u00FAblic\",\"draft\":\"Privat\"}}},\"plan_types\":{\"create\":{\"success\":\"El pla s\\'ha creat correctament.\"},\"destroy\":{\"has_items\":\"No es pot arxivar un tipus de pla mentre tingui elements associats.\",\"success\":\"El pla s\\'ha esborrat correctament.\"},\"edit\":{\"title\":\"Edita el tipus de pla\"},\"form\":{\"placeholders\":{\"name\":\"Nom del tipus de pla\",\"slug\":\"sobre-de-aquest-tipus-de-pla\"}},\"index\":{\"delete\":\"Esborrar\",\"header\":{\"type\":\"Tipus\"},\"new\":\"Nou\",\"title\":\"Tipus de plans\"},\"new\":{\"title\":\"Nou tipus de pla\"},\"update\":{\"success\":\"El pla pla s\\'ha actualizat correctament.\"}},\"plans\":{\"create\":{\"success_html\":\"Pla s\\'ha creat correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure el pla\\\\u003c/a\\\\u003e.\"},\"delete_contents\":{\"success\":\"Els projectes de el pla han estat correctament eliminats\",\"term_deletion_failed_html\":\"El terme \\\\\"%{term}\\\\\" de l\\'vocabulari \\\\\"%{vocabulary}\\\\\" no pot ser esborrat: %{message}\"},\"destroy\":{\"success\":\"El pla s\\'ha esborrat correctament.\"},\"edit\":{\"title\":\"Configuraci\u00F3\"},\"form\":{\"delete_contents\":\"Eliminar els projectes d\\'aquest pla\",\"delete_contents_confirm\":\"Confirma que vols eliminar els projectes d\\'aquest pla\",\"export_csv\":\"Exportar a CSV\",\"import_csv\":\"Importar des de CSV\",\"indicators\":\"indicadors\",\"placeholders\":{\"configuration_data\":\"{ \\\\\"open_node\\\\\": true }\",\"css\":\".gobierto_planification section.level_0 .cat_1 { background-color: rgba(0, 191, 255, 0.95); }\",\"footer\":\"Peu de p\u00E0gina del pla\",\"introduction\":\"Introducci\u00F3 del pla\",\"slug\":\"sobre-de-aquest-pla\",\"title\":\"T\u00EDtol del pla\",\"year\":2018},\"projects\":\"Projectes\",\"publish_last_version_automatically\":\"Publicar les versions noves dels projectes autom\u00E0ticament\"},\"import_csv\":{\"defaults\":{\"category\":{\"one\":\"element de nivell %{level}\",\"other\":\"elements de nivell %{level}\"},\"project\":{\"one\":\"projecte\",\"other\":\"projectes\"}},\"latest_update\":\"\u00DAltima actualitzaci\u00F3: %{datetime}\",\"no_data\":\"Encara no hi ha dades carregades\",\"there_are\":\"Hi ha %{info}\",\"title\":\"Importa CSV\"},\"import_csv_form\":{\"confirm_import\":\"N\\'est\u00E0s segur?\",\"custom_fields_table_plugin\":\"Camps personalitzats (plugin de taula)\",\"disable_with\":\"Carregant...\",\"more_info_html\":\"Per obtenir m\u00E9s informaci\u00F3 visita la documentaci\u00F3 \\\\u003ca href=\\\\\"%{url}\\\\\" target=\\\\\"_blank\\\\\"\\\\u003eImportar datos de un plan\\\\u003c/a\\\\u003e.\",\"plan_content\":\"Contingut del pla\",\"submit\":\"Importa des de fitxer CSV\",\"vocabulary_used_by_other_plans\":\"El vocabulari configurat per aquest pla ja est\u00E0 configurat per a algun altre. Si us plau, crea un vocabulari nou per aquest pla o elimina-de la configuraci\u00F3 dels altres plans que ho estiguin fent servir, at\u00E8s que s\\'esborrarien les seves dades amb la importaci\u00F3.\",\"warning\":\"\\\\u003cstrong\\\\u003eAv\u00EDs\\\\u003c/strong\\\\u003e A l\\'importar des d\\'un fitxer CSV, si el pla est\u00E0 buit s\\'afegiran termes als vocabularis associats amb categories i camps personalitzats a mesura que es trobin, per\u00F2 si el pla ja cont\u00E9 dades, al tractar-se d\\'una actualitzaci\u00F3, es produiran errors per als termes que no es trobin en els respectius vocabularis.\"},\"import_data\":{\"missing_file\":\"Es necessari seleccionar un fitxer per a la importaci\u00F3.\",\"success_html\":\"Les dades s\\'han importat correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure el pla\\\\u003c/a\\\\u003e.\"},\"index\":{\"header\":{\"elements\":\"Elements\",\"status\":\"Estat\",\"title\":\"T\u00EDtol\",\"type\":\"Tipus\",\"year\":\"Any\"},\"new\":\"Nou\",\"title\":\"Plans\",\"types\":\"Tipus\",\"view_plan\":\"Veure pla\",\"visibility_level\":{\"draft\":\"Esborrany\",\"published\":\"Publicat\"}},\"new\":{\"title\":\"Nou pla\"},\"recover\":{\"success\":\"El pla s\\'ha recuperat correctament.\"},\"update\":{\"success_html\":\"El tipus de pla s\\'ha actualizat correctament. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVeure el pla\\\\u003c/a\\\\u003e.\"}},\"projects\":{\"create\":{\"success\":\"El projecte s\\'ha creat correctament.\"},\"destroy\":{\"success\":\"El projecte s\\'ha esborrat correctament.\"},\"filter_form\":{\"author\":\"Autor\",\"category\":\"Categoria\",\"clear_filters\":\"Netejeu filtres\",\"filter\":\"Filtrar\",\"interval\":\"Rang de dates\",\"progress\":\"Progr\u00E9s\",\"search\":\"Cerca...\",\"status\":\"Estat\",\"submit\":\"Filtrar\"},\"filters_row\":{\"all\":\"Tots\",\"moderation_stage\":\"Moderaci\u00F3\",\"moderation_stage_value\":{\"approved\":\"Aprovats\",\"blank\":\"Sense moderaci\u00F3\",\"in_review\":\"En revisi\u00F3\",\"rejected\":\"No aprovats\",\"sent\":\"Enviat\",\"unsent\":\"No enviats\"},\"total\":\"Total\",\"versions_visibility_level\":\"Publicaci\u00F3\",\"versions_visibility_level_value\":{\"draft\":\"Esborrany\",\"published_up_to_date\":\"Publicat actualitzat\",\"published_with_unpublished_changes\":\"Publicat amb canvis sense publicar\"}},\"find_versioned_project\":{\"unavailable_version\":\"Versi\u00F3 no disponible\"},\"form\":{\"button\":{\"add_dashboard\":\"Afegir a un dashboard\"},\"placeholders\":{\"name\":\"T\u00EDtol del projecte\"}},\"index\":{\"headers\":{\"progress\":\"Progr\u00E9s\",\"project\":\"Projecte\",\"status\":\"Estat\",\"updated\":\"Actualitzat\",\"visibility_level\":\"Publicaci\u00F3\"},\"new\":\"Nou\",\"title\":\"Projectes de %{name}\",\"view\":\"Veure \u00EDtem\"},\"new\":{\"title\":\"Nou projecte\"},\"publish\":{\"confirm\":\"Vas a publicar aquest projecte, de manera que qualsevol usuari podr\u00E0 veure-ho.\",\"error\":\"El projecte no s\\'ha pogut publicar.\",\"success\":\"El projecte s\\'ha publicat correctament.\"},\"send\":{\"confirm\":\"Vas a enviar aquest projecte a un moderador per a la seva validaci\u00F3.\"},\"unpublish\":{\"error\":\"El projecte no s\\'ha pogut despublicar.\",\"success\":\"El projecte s\\'ha despublicat correctament.\"},\"update\":{\"moderation_reset\":\"Com que has modificat el projecte i no tens permisos de moderaci\u00F3 el seu estat ha estat mogut a No enviat.\",\"no_changes\":\"No s\\'han produ\u00EFt canvis al projecte. Mantenint la versi\u00F3 actual.\",\"success\":\"El projecte s\\'ha actualitzat correctament.\",\"suggest_unpublish_html\":\"El projecte est\u00E0 sense aprovar per\u00F2 publicat. \\\\u003ca rel=\\\\\"nofollow\\\\\" data-method=\\\\\"post\\\\\" href=\\\\\"%{url}\\\\\"\\\\u003eDespublicar\\\\u003c/a\\\\u003e.\"}},\"shared\":{\"navigation\":{\"configuration_tab\":\"Configuraci\u00F3\",\"dashboards_tab\":\"Dashboards\",\"plan_terms_tab\":\"Pla\",\"projects_tab\":\"Projectes\"}}},\"gobierto_visualizations\":{\"configuration\":{\"settings\":{\"edit\":{\"title\":\"Configuraci\u00F3 dels Visualitzacions\",\"update\":\"Actualitzar\"},\"title\":\"Preferencies\",\"update\":{\"error\":\"Hi ha hagut un error al desar la configuraci\u00F3: %{validation_errors}\",\"success\":\"Configuraci\u00F3 guardada correctament\"}}}},\"layouts\":{\"application\":{\"admin_dropdown\":{\"account\":\"El teu compte\",\"sign_out\":\"Tancar sessi\u00F3\"},\"calendars\":\"Agendes\",\"cms\":\"CMS\",\"collapse_menu\":\"Colapsar men\u00FA\",\"custom_fields\":\"Camps personalitzats\",\"dirty_forms\":{\"message\":\"Hi ha canvis sense desar. Est\u00E0s segur de voler continuar?\"},\"edit_site\":\"Personalitzar site\",\"file_attachments\":\"Documents\",\"global\":\"General\",\"hey_admin\":\"Hola, %{admin_name}\",\"manage_sites\":\"Gestionar sites\",\"modules\":{\"budgets\":\"Pressupostos\",\"data\":\"Dades\",\"investments\":\"Inversions\",\"observatory\":\"Observatori\",\"people\":\"Alts c\u00E0rrecs i Agendes\",\"plans\":\"Plans\",\"visualizations\":\"Visualitzacions\"},\"notifications\":\"Notificacions\",\"site_network\":\"Xarxa\",\"templates\":\"Plantilles\",\"users\":\"Usuaris\",\"view_documentation\":\"Veure documentaci\u00F3\",\"view_item\":\"Veure \u00EDtem\",\"view_site\":\"Veure site\",\"vocabularies\":\"Vocabularis\"}},\"module_helper\":{\"not_enabled\":\"No est\u00E0s autoritzat a realitzar esta acci\u00F3\"},\"session_helper\":{\"already_signed_in\":\"Ja est\u00E1s identificat\",\"not_authorized\":\"No est\u00E0s autoritzat a realitzar aquesta acci\u00F3\",\"not_signed_in\":\"Has d\\'estar identificat per continuar\"},\"sessions\":{\"create\":{\"error\":\"Les dades que has introduit no semblen ser v\u00E0lides. Per favor, tria de nou.\",\"success\":\"Sessi\u00F3 iniciada correctament\"},\"destroy\":{\"success\":\"Sessi\u00F3 tancada correctament\"},\"form\":{\"email\":\"Email\",\"password\":\"Contrasenya\",\"submit\":\"Enviar\"},\"new\":{\"forgot_your_password\":\"Has oblidat la contrasenya?\",\"title\":\"Iniciar sessi\u00F3\"}},\"shared\":{\"admin_widget_attachment\":{\"add_new_document\":\"Afegeix nou document\",\"attachments\":\"Documents\",\"copy_to_clipboard\":\"Copia URL\",\"description\":\"Descripci\u00F3\",\"document\":\"Document\",\"document_title\":\"T\u00EDtol del document\",\"drag_document_here\":\"Arrastra i solta el document aqu\u00ED\",\"edit_document\":\"Editar document\",\"include_file\":\"Incloure arxiu\",\"include_in_text\":\"Incloure arxiu en el text\",\"latest_documents\":\"\u00DAltims documents afexits\",\"no_docs\":\"No hi ha documents\",\"or\":\"o\",\"save\":\"Desar\",\"search\":\"Cercar\",\"select_file\":\"Tria un arxiu del disc dur\"},\"archive\":{\"confirm\":\"\u00BFSegur que vols arxivar aquest element? No es mostrar\u00E0 al front ni en llistes com aquesta. Vost\u00E8 podr\u00E0 recuperar-lo.\",\"element\":\"Arxivar aquest element\",\"elements\":\"Elements arxivats\"},\"draft\":\"Borrador\",\"form_locale_switchers\":{\"define_content_in_locale\":\"Defineix el contingut en la versi\u00F3 en %{locale_name}\",\"translate\":\"Traduxir\"},\"moderation_save_widget\":{\"change_moderation_status\":\"Canvia l\\'estat de moderaci\u00F3\",\"confirm\":\"Est\u00E0s segur?\",\"confirm_moderation_blocked_update\":\"Est\u00E0s segur? Si deseu modificacions en aquest projecte l\\'estat s\\'actualitzar\u00E0 a No enviat.\",\"edit_version\":\"Editant versi\u00F3\",\"last_versions\":\"\u00DAltimes versions\",\"minor_change\":\"Canvi menor (no guarda versi\u00F3)\",\"moderation\":\"Moderaci\u00F3\",\"moderation_info\":{\"new\":\"Un cop guardis el teu contingut, podr\u00E0s enviar-lo a moderaci\u00F3.\",\"publicable\":\"Fes click a Publicar perqu\u00E8 aquesta versi\u00F3 sigui visible p\u00FAblicament.\",\"publicable_html\":\"Fes click a Publicar perqu\u00E8 aquesta versi\u00F3 sigui visible p\u00FAblicament.\",\"published\":\"La versi\u00F3 actual \u00E9s la que est\u00E0 publicada.\",\"published_html\":\"La versi\u00F3 actual \u00E9s la que est\u00E0 publicada. \\\\u003ca rel=\\\\\"nofollow\\\\\" data-method=\\\\\"post\\\\\" href=\\\\\"%{url}\\\\\"\\\\u003eDespublicar\\\\u003c/a\\\\u003e.\",\"rejected\":\"La versi\u00F3 est\u00E0 rebutjada.\",\"sent\":\"El teu contingut ha estat enviat per a revisi\u00F3. Rebr\u00E0s una notificaci\u00F3 quan s\\'aprovi o et demanin canvis.\",\"unsent\":\"Quan el teu contingut estigui llest per a ser revisat per un moderador, fes click a Enviar.\"},\"moderation_status\":{\"approved\":\"Aprovat\",\"in_review\":\"En revisi\u00F3\",\"rejected\":\"No aprovat\",\"sent\":\"Enviat\",\"unsent\":\"No enviat\"},\"new_version\":\"Nova (no guardada)\",\"preview\":\"Previsualitzar\",\"previous_versions\":\"Versions anteriors\",\"publication_status\":{\"approved\":\"Publicada\",\"not_published\":\"No publicada\"},\"publish\":\"Publicar\",\"publish_last_version_automatically\":\"Publica autom\u00E0ticament aquesta versi\u00F3\",\"publish_status\":\"Estat\",\"published_version\":\"Versi\u00F3 publicada\",\"published_version_blank\":\"sense publicar encara\",\"save\":\"Guardar\",\"see_all\":\"veure totes\",\"send\":\"Enviar\",\"unpublish\":\"Despublicar\"},\"module\":\"M\u00F2dul\",\"recover\":{\"confirm\":\"Si es recupera un element, es tornar\u00E0 a llistar de nou.\",\"element\":\"Recuperar element\"},\"resource_admin_permissions_button\":{\"permissions\":\"Permisos\"},\"save_widget\":{\"save\":\"Guardar\",\"visibility_level\":{\"active\":\"P\u00FAblic\",\"draft\":\"Borrador\",\"published\":\"P\u00FAblic\"}}},\"sites\":{\"create\":{\"success\":\"El lloc s\\'ha creat correctament\"},\"destroy\":{\"success\":\"El lloc s\\'ha eliminat correctament\"},\"edit\":{\"title\":\"Personalitzar lloc\"},\"form\":{\"admin_authentication_modules\":\"Estrat\u00E8gies d\\'autenticaci\u00F3 per admins\",\"authentication_modules\":\"Estrat\u00E8gies d\\'autenticaci\u00F3 per a usuaris\",\"hints\":{\"domain\":{\"a_record\":\"Entrada A a %{target}\",\"cname_record\":\"Entrada CNAME a %{target}\",\"if_domain\":\"Si es un domini\",\"if_subdomain\":\"Si es un subdomini\",\"instructions\":\"Important: aquest domini deur\u00E0 estar creant previament per a que el lloc funcione correctament.\"},\"organization_id_html\":\"Pots buscar el codi \\\\u003ca href=\\\\\"https://populatetools.github.io/ine-places/places.html\\\\\" target=\\\\\"_blank\\\\\"\\\\u003een aquesta taula\\\\u003c/a\\\\u003e.\"},\"modules_enabled\":\"M\u00F3duls actius para aquest lloc\",\"password\":\"Contrasenya\",\"placeholders\":{\"domain\":\"gobierto.burjassot.es\",\"google_analytics_id\":\"UA-000000-01\",\"name\":\"Ajuntament de Burjassot\",\"organization_name\":\"Burjassot\",\"populate_data_api_token\":\"Token de API de Populate Data\",\"reply_to_email\":\"contacte@email.com\",\"title\":\"Transparencia i Participci\u00F3\"},\"registration\":\"Registre d\\'usuaris\",\"registration_disabled\":\"Deshabilitar el registre (nom\u00E9s oculta els enlla\u00E7os al registre/login)\",\"username\":\"Noe d\\'usuari\",\"visibility_level\":{\"active\":\"Publicat\",\"draft\":\"Borrador\"}},\"index\":{\"configuration\":\"Configuraci\u00F3\",\"header\":{\"created_at\":\"Creat\",\"domain\":\"Domini\",\"site\":\"Lloc\",\"status\":\"Estat\"},\"new\":\"Crear lloc\",\"title\":\"Sites\",\"view_site\":\"Veure lloc\"},\"new\":{\"title\":\"Crear lloc\"},\"pages\":\"P\u00E0gines\",\"sections\":\"Seccions\",\"update\":{\"success\":\"El lloc s\\'ha actualizat correctament\"}},\"users\":{\"edit\":{\"title\":\"Editar Usuari\"},\"form\":{\"change_password\":\"Canviar contrasenya\",\"password_block\":\"Contrasenya\",\"placeholders\":{\"email\":\"fgonzalez@gmail.com\",\"name\":\"Fernando Gonz\u00E1lez\"},\"resend_welcome_email\":\"Reenviar Email de benvinguda\",\"resend_welcome_email_notes\":\"amb enlla\u00E7 per canviar la contrasenya\"},\"index\":{\"admins_section\":\"Administradors\",\"census_configuration\":\"Cens\",\"header\":{\"created_at\":\"Creat\",\"email\":\"Email\",\"last_sign_in_at\":\"\u00DAltim login\",\"user\":\"Usuari\",\"verified\":\"Verificat\"},\"title\":\"Usuaris\",\"users\":{\"one\":\"%{count} usuari\",\"other\":\"%{count} usuaris\"},\"users_confirmed\":{\"one\":\"%{count}% confirmat\",\"other\":\"%{count}% confirmats\"},\"users_verified\":{\"one\":\"%{count}% verificat\",\"other\":\"%{count}% verificats\"},\"view_user\":\"Veure usuari\"},\"passwords\":{\"create\":{\"error\":\"Hi ha hagut un problema al canviar la contrasenya del usuari\",\"success\":\"La contrasenya del usuari s\\'ha canviat correctamente\"},\"form\":{\"submit\":\"Enviar\"},\"new\":{\"title\":\"Canviar contrasenya d\\'usuari\"}},\"session_information\":{\"created_at\":\"Creat\",\"last_sign_in\":\"\u00DAltim login\",\"site\":\"Site\"},\"update\":{\"success\":\"El Usuari s\\'ha actualitzat correctament\"},\"welcome_messages\":{\"create\":{\"error\":\"El missatge de benvinguda no s\\'ha pogut enviar. Per favor, tria de nou.\",\"success\":\"El missatge de benvinguda s\\'ha enviat\"}}},\"welcome\":{\"index\":{\"title\":\"Inici\"}}},\"gobierto_attachments\":{\"events\":{\"gobierto_attachments_attachment_created\":\"Document s\\'ha creat\",\"gobierto_attachments_attachment_updated\":\"Document s\\'ha actualitzat\"}},\"gobierto_budgets\":{\"budget_lines\":{\"explorer\":{\"examples\":\"Exemples\",\"expenses\":\"Despeses\",\"explore_the_detail\":\"Explora el detall\",\"income\":\"Ingressos\",\"search\":\"Cercar\",\"search_budget_line\":\"Cerca una partida espec\u00EDfica\"},\"index\":{\"amount\":\"Quantitat\",\"budget_guide_pitch\":\"Consulta la Guia del Pressupost\",\"budget_line\":\"Partida\",\"categories\":\"Categories pressupost\u00E0ries\",\"custom\":\"Personalitzada\",\"expense_in_what\":\"En qu\u00E8 es gasta\",\"expense_to_do_what\":\"Per a qu\u00E8 es gasta\",\"help\":\"T\\'expliquem com funciona un pressupost municipal\",\"income_from_what\":\"En qu\u00E8 s\\'ingressa\",\"per_inhabitant\":\"Per habitant\",\"title\":\"Pressupostos municipals en %{year}\"},\"show\":{\"about_this_line\":\"Sobre aquesta partida\",\"avg_province\":\"Mitjana %{kind} provincial\",\"avg_province_tooltip\":\"Mitjana d\\'aquesta partida en els municipis de la prov\u00EDncia\",\"back_to_parent\":\"Tornar a la partida pare\",\"budget_line_category\":\"Categoria\",\"budget_line_percentage\":\"Percentatge\",\"budget_line_value\":\"Quantitat\",\"budget_lines_distribution\":\"Distribuci\u00F3 de les despeses d\\'aquesta partida\",\"current_amount\":\"Pressupost actual\",\"current_amount_per_inhabitant\":\"Pressupost actual / hab.\",\"evolution\":\"Evoluci\u00F3\",\"give_your_opinion\":\"Opina sobre aquesta partida\",\"give_your_opinion_cta\":\"Entens de qu\u00E8 va aquesta partida? Et sembla molt, poc? Opina\",\"initial_estimate\":\"Pressupost inicial\",\"last_year\":\"L\\'any passat %{value}\",\"no_description\":\"No hi ha una descripci\u00F3 associada a aquesta partida.\",\"no_distribution\":\"No hi ha distribuci\u00F3 associada a aquesta partida.\",\"no_more_descendants\":\"No hi ha m\u00E9s subpartides\",\"not_available\":\"No disp.\",\"percentage\":\"% sobre el total del press.\",\"percentage_tooltip\":\"Percentage del pressupost total que suposa aquesta partida\",\"planned\":\"pressupostat\",\"planned_female\":\"pressupostada\",\"planned_per_inhabitant\":\"Pressupost inicial / hab.\",\"planned_per_inhabitant_tooltip\":\"Quantitat pressupostada dividida pel nombre d\\'habitants\",\"planned_tooltip\":\"Quantitat pressupostada\",\"raise_hand\":\"Al\u00E7a la m\u00E0\",\"real_value\":\"%{kind} real s\u00F3n %{value}\",\"real_vs_planned\":\"% execuci\u00F3\",\"real_vs_planned_tooltip\":\"Percentage de la partida que ha sigut executat\",\"sub_budget_lines\":\"Dins d\\'aquesta partida\",\"twitter_text_expense\":\"En @gobierto: Despesa municipal de %{name} en %{budget_line_name} al %{year}\",\"twitter_text_income\":\"En @gobierto: Ingr\u00E9s municipal de %{name} en %{budget_line_name} al %{year}\",\"updated\":\"actualitzat\",\"updated_female\":\"actualitzada\",\"vs_previous_year\":\"vs. exercici anterior\",\"vs_previous_year_tooltip\":\"Comparaci\u00F3 amb les dades de l\\'exercici anterior\"}},\"budgets\":{\"guide\":{\"budget_execution\":\"L\\'execuci\u00F3 pressupost\u00E0ria\",\"budget_execution_p1_html\":\"Aprovar un pressupost no vol dir que es quedi escrit en una pedra. Al llarg de l\\'any sorgeixen imprevistos que canvien la quantitat o la finalitat de les despeses. Aquests canvis s\u00F3n els que s\u2019anomenen l\u2019\\\\u003ca href=/presupuestos/ejecucion/%{year}\\\\\"\\\\u003eexecuci\u00F3 pressupost\u00E0ria\\\\u003c/a\\\\u003e.\",\"budget_execution_p2\":\"Per saber si l\u2019Ajuntament ha planificat b\u00E9 els comptes nom\u00E9s hem de comparar el pressupost i l\\'execuci\u00F3: ha gastat m\u00E9s del pressupostat? Li han sobrat diners? O s\\'ha ajustat al que preveia?\",\"capital_income\":\"Ingressos de capital\",\"capital_income_p1\":\"Procedeixen de la venda de propietats municipals com solars o finques. Tamb\u00E9 poden procedir de transfer\u00E8ncies d\u2019altres administracions (inclosos fons europeus) per a la realitzaci\u00F3 d\u2019inversions.\",\"classification\":\"Classificaci\u00F3 pressupost\u00E0ria\",\"classification_p1\":\"En aquesta eina, els ingressos estan classificats tenint en compte la seva naturalesa econ\u00F2mica, que estableix el seu origen. I les despeses, d\\'altra banda, estan classificades de dues formes: a partir de criteris de programa (en qu\u00E8 es gasten els diners) i econ\u00F2mics (com es gasten aquests diners).\",\"debt\":\"Quant deu el municipi\",\"description\":\"El pressupost municipal \u00E9s el pla econ\u00F2mic i financer que explica com l\u2019Ajuntament gestiona els diners p\u00FAblics per donar resposta a les necessitats del municipi. Serveix per planificar, programar, controlar i avaluar les actuacions municipals i fer el seguiment de les finances. \u00C9s una eina de car\u00E0cter anual i especifica les previsions d\u2019ingressos i despeses. Aqu\u00ED t\\'expliquem els conceptes m\u00E9s importants perqu\u00E8 siguin m\u00E9s comprensibles.\",\"economic\":\"Despesa econ\u00F2mica\",\"economic_p1\":\"\u00C9s la classificaci\u00F3 que indica la naturalesa de la despesa. Per exemple, \\\\\"despeses de personal\\\\\", que engloba els sous de tots els treballadors i treballadores de l\u2019Ajuntament.\",\"economic_p2\":\"En un pressupost oficial, els apartats principals es diuen cap\u00EDtols. I al seu torn, cada cap\u00EDtol es divideix en articles, conceptes i subconceptes.\",\"execution\":\"Execuci\u00F3 pressupost\u00E0ria\",\"expense_economic_1_desc\":\"Sous de funcionaris, personal laboral, \u00F2rgans de govern, personal directiu i eventual, aix\u00ED com les cotitzacions a la Seguretat Social i les despeses de formaci\u00F3.\",\"expense_economic_2_desc\":\"Subministraments, reparacions, materials i despeses de serveis o treballs realitzats per empreses externes contractades.\",\"expense_economic_3_desc\":\"Pagament d\\'interessos derivats d\\'operacions financeres.\",\"expense_economic_4_desc\":\"Aportacions a d\u2019altres entitats locals o empreses privades per finan\u00E7ar activitats o serveis, com els ajuts socials, beques, etc.\",\"expense_economic_5_desc\":\"S\u00F3n diners que cobreixen situacions d\\'emerg\u00E8ncia i despeses no previstes. La seva quantia est\u00E0 delimitada a la normativa.\",\"expense_economic_6_desc\":\"Construcci\u00F3 o rehabilitaci\u00F3 d\u2019equipaments, adquisici\u00F3 de maquin\u00E0ria o de b\u00E9ns inventariables aix\u00ED com totes les actuacions que incrementin la vida \u00FAtil del patrimoni municipal.\",\"expense_economic_7_desc\":\"S\u00F3n aportacions o transfer\u00E8ncies a d\u2019altres administracions i/o entitats per a la realitzaci\u00F3 de projectes d\u2019inversi\u00F3.\",\"expense_economic_8_desc\":\"Inclouen bestretes de personal, compra de valors financers, etc.\",\"expense_economic_9_desc\":\"Amortitzaci\u00F3 de pr\u00E9stecs i cr\u00E8dits.\",\"expense_functional_0_desc\":\"Aquesta partida es destina a pagar el deute acumulat per l\\'ajuntament.\",\"expense_functional_1_desc\":\"Cobreix les necessitats obligat\u00F2ries del municipi: clavegueram, neteja, enllumenat, seguretat, etc.\",\"expense_functional_2_desc\":\"S\u00F3n els diners que es destinen a actuacions assistencials i preventives. Per exemple, serveis socials, el foment de l\\'ocupaci\u00F3, Rescat Social, etc.\",\"expense_functional_3_desc\":\"Fa refer\u00E8ncia als serveis que milloren la qualitat de vida de la ciutadania: educaci\u00F3, cultura, esports, salut, etc.\",\"expense_functional_4_desc\":\"Inclou accions que ajuden a desenvolupar el potencial dels diferents sectors econ\u00F2mics, com infraestructures i transports.\",\"expense_functional_9_desc\":\"S\\'hi agrupen les despeses del mateix Ajuntament, com serveis de car\u00E0cter general o transfer\u00E8ncies a d\u2019altres organismes p\u00FAblics.\",\"expenses\":\"Despeses\",\"expenses_how\":\"A qu\u00E8 dedica l\\'Ajuntament els diners de la ciutadania? Les despeses es poden classificar de dues maneres: des del punt de vista de programa (en qu\u00E8 es gasta) i econ\u00F2mic (com es gasta). Des del punt de vista de programa, els diners es poden destinar a pagar deute p\u00FAblic, serveis p\u00FAblics o actuacions de promoci\u00F3 social, entre d\\'altres. I des del punt de vista econ\u00F2mic, s\\'utilitzen per pagar despeses de personal, manteniment d\\'equipaments i serveis, despeses financeres o transfer\u00E8ncies a les entitats de la ciutat (subvencions) i a d\\'altres administracions.\",\"expenses_per_inhabitant\":\"La despesa per habitant va ser de ...\",\"expenses_types\":\"Tipus de despesa\",\"expenses_types_p1\":\"Com fa servir l\\'Ajuntament els diners del pressupost? Les despeses es poden classificar de dues maneres: des del punt de vista de programa (en qu\u00E8 es gasta) i econ\u00F2mic (com es gasta). La quantitat de diners \u00E9s la mateixa, per\u00F2 la veiem des de dos punts de vista diferents.\",\"financial_income\":\"Ingressos financers\",\"financial_income_p1\":\"Poden ser interessos de dip\u00F2sits bancaris, dividents d\u2019accions o productes financers i noves operacions d\u2019endeutament.\",\"functional\":\"Despesa per programa\",\"functional_p1\":\"\u00C9s la classificaci\u00F3 m\u00E9s explicativa: indica, per exemple, quants diners es gasta l\u2019Ajuntament en la gesti\u00F3 de residus o en instal\u00B7lacions esportives, per exemple. En un pressupost oficial les despeses s\u2019estructuren en \u00E0rees i aquestes es divideixen en diferents tipologies de pol\u00EDtiques (promoci\u00F3 de l\u2019activitat econ\u00F2mica, culturals, esportives, ocupacionals, etc.), i tamb\u00E9 en grups i programes. Aquest nivell de profunditat permet con\u00E8ixer amb detall on van els diners.\",\"functional_p2\":\"\",\"how_much_debt\":\"Quant deu el municipi?\",\"how_much_debt_p1\":\"El deute viu d\\'un municipi indica el que deu l\\'Ajuntament a bancs i altres entitats financeres. Cal no confondre\u2019l amb el total del d\u00E8ficit del municipi (la difer\u00E8ncia entre els ingressos i les despeses).\",\"how_much_debt_p2\":\"\",\"how_much_debt_p3\":\"\",\"how_to_read\":\"Com es llegeix?\",\"how_to_read_p1_html\":\"Tots els pressupostos municipals tenen la mateixa estructura, definida legalment en l\\'\\\\u003ca href=\\\\\"https://www.boe.es/buscar/doc.php?id=BOE-A-2008-19916\\\\\"\\\\u003eOrdre EHA / 3565/2008\\\\u003c/a\\\\u003e. L\\'estructura b\u00E0sica \u00E9s senzilla: es divideix en ingressos i despeses. \u00C9s a dir, respon a les preguntes: d\\'on surten els diners? (ingressos) i en qu\u00E8 es gasten? (despeses).\",\"income\":\"Ingressos\",\"income_1_desc\":\"Graven la font de la renda, els fruits del patrimoni o d\\'una activitat econ\u00F2mica. Per exemple, l\u2019Impost de B\u00E9ns Immobles (IBI).\",\"income_2_desc\":\"Recull els ingressos derivats de la recaptaci\u00F3 d\u2019impostos per a la realitzaci\u00F3, dins del terme municipal, de qualsevol construcci\u00F3, instal\u00B7laci\u00F3 i obra.\",\"income_3_desc\":\"Imports que cobra l\\'Ajuntament per oferir serveis, com la taxa per la gesti\u00F3 dels residus,  els preus p\u00FAblics per serveis com escoles bressol, escola de m\u00FAsica, serveis d\\'atenci\u00F3 domiciali\u00E0ria, esportius, etc.\",\"income_4_desc\":\"Diners que l\\'Ajuntament rep de l\\'Estat, la Generalitat, la Diputaci\u00F3 de Barcelona, l\\'\u00C0rea Metropolitana de Barcelona i empreses privades (en alguns ajuntaments).\",\"income_5_desc\":\"Rendes de patrimoni del municipi. S\u00F3n els beneficis sobre b\u00E9ns que no es destinen a servei p\u00FAblic. Per exemple, els c\u00E0nons derivats de concessions, com la piscina, el tanatori, etc.\",\"income_6_desc\":\"Venda de solars i finques r\u00FAstiques.\",\"income_7_desc\":\"Ingressos procedents de qualsevol administraci\u00F3 p\u00FAblica o entitat destinats a finan\u00E7ar despeses de capital (solars o finques).\",\"income_8_desc\":\"S\u00F3n fiances o dip\u00F2sits.\",\"income_9_desc\":\"Cr\u00E8dits sol\u00B7licitats a bancs o a d\u2019altres entitats privades.\",\"income_p1\":\"Els ingressos es divideixen segons la seva naturalesa econ\u00F2mica, \u00E9s a dir, d\\'on venen els diners: a trav\u00E9s d\\'impostos, transfer\u00E8ncies d\\'altres administracions, taxes i preus p\u00FAblics o b\u00E9 de la gesti\u00F3 per tercers del patrimoni municipal. I tamb\u00E9 es divideixen segons la forma, \u00E9s a dir, si \u00E9s un cr\u00E8dit bancari, una propietat municipal que s\\'ha venut o un impost.\",\"income_p2\":\"En %{year} es van ingressar...\",\"intro_p1\":\"L\u2019equip de govern dissenya el pressupost i el redacta amb els serveis econ\u00F2mics. Posteriorment s\u2019informa i es treballa amb tots els grups municipals. En paral\u00B7lel s\u2019informa la ciutadania i les entitats en un acte p\u00FAblic i per \u00FAltim es presenta al ple municipal per al seu debat i aprovaci\u00F3.\",\"intro_p2\":\"Un cop aprovat al ple s\u2019obre un per\u00EDode de quinze dies perqu\u00E8 la ciutadania i els grups municipals facin al\u00B7legacions. Tot seguit, si no es produeixen al\u00B7legacions, queda aprovat definitivament.\",\"intro_p3\":\"Perqu\u00E8 el pressupost estigui vigent l\u20191 de gener ha de quedar aprovat definitivament abans del 31 de desembre de l\\'any anterior, si no es prorroga de forma autom\u00E0tica el de l\u2019any anterior.\",\"regular_income\":\"Ingressos corrents\",\"regular_income_p1\":\"Els impostos, els diners que les administracions transfereixen a cada municipi, i taxes i preus p\u00FAblics que recapta l\\'Ajuntament s\u00F3n els m\u00E9s habituals.\",\"sources\":\"Fonts\",\"sources_p1_html\":\"Per elaborar aquesta guia hem pres com a refer\u00E8ncia l\\'estructura oficial d\\'un pressupost municipal, definida a la \\\\u003ca href=\\\\\"https://www.boe.es/buscar/doc.php?id=BOE-A-2008-19916\\\\\"\\\\u003eOrdre EHA / 3565/2008\\\\u003c/a\\\\u003e i ens hem inspirat en altres documents com \\\\u003ca href=\\\\\"http://www.ocmcartagena.org/files/archive/Entendiendo-un-presupuesto-municipal.pdf\\\\\"\\\\u003eEntenent un pressupost municipal\\\\u003c/a\\\\u003e i \\\\u003ca href=\\\\\"https://docs.google.com/presentation/d/1oysDrJvlFxP0sKlzBalxvrV3lzSE5OCSKY7qd5yYpcA/pub?start=false\\\\u0026loop=false\\\\u0026delayms=3000\\\\u0026slide=id.p\\\\\"\\\\u003eGuia d\\'introducci\u00F3 als pressupostos municipals\\\\u003c/a\\\\u003e .\",\"title\":\"Com funciona un pressupost municipal\",\"types_income\":\"Tipus d\\'ingr\u00E9s\",\"types_income_p1\":\"Els ingressos tal com estableix la llei es divideixen en tres apartats:\",\"types_income_p2\":\"\",\"types_income_p3\":\"\"},\"index\":{\"at_a_glance\":\"Evoluci\u00F3 de la despesa i comparaci\u00F3\",\"at_years_end\":\"* a final del %{year}\",\"budget_guide\":\"Llegeix la Guia del Pressupost\",\"budget_lines_block\":{\"intro\":\"Aquestes s\u00F3n les partides del pressupost m\u00E9s importants al teu municipi.\",\"title\":\"Partides del pressupost\"},\"budget_receipt\":{\"intro\":\"Descobreix a qu\u00E8 es dediquen les teves aportacions\",\"title\":\"El rebut dels meus impostos\"},\"budget_slides\":{\"slide_1\":\"Gasto en asistencia social por habitante\",\"title\":\"Els pressupostos d\\'un cop d\\'ull\"},\"budgets_comparision\":{\"button\":\"Comparar\",\"text\":\"Compara el pressupost del %{site} amb el dels altres municipis des de\"},\"category_percentage\":\"Percentatge\",\"category_value\":\"Quantitat\",\"context\":\"Context\",\"data_of_year\":\"* dades del %{year}\",\"debt\":\"Deute\",\"debt_tooltip\":\"Deute del sector d\u2019administracions p\u00FAbliques %{of_the_organization_name}\",\"description\":\"En aquesta p\u00E0gina pots con\u00E8ixer la distribuci\u00F3 del pressupost, l\\'estat d\\'execuci\u00F3 de cada partida i com ha evolucionat la despesa per habitant\",\"executed\":\"Execuci\u00F3 del pres. actual\",\"executed_percent\":\"%{percentage}% del pressupost actual\",\"executed_percent_other_year_html\":\"El %{year} va ser un %{link}\",\"executed_tooltip\":\"Despesa executada respecte el pressupost actual (pressupost inicial m\u00E9s modificacions)\",\"execution_block\":{\"button\":\"Consulta l\\'execuci\u00F3 al complet\",\"expense\":\"Despesa\",\"income\":\"Ingressos\",\"intro\":\"Aix\u00ED s\\'est\u00E0 executant el pressupost municipal.\",\"last_update\":\"Darrera actualitzaci\u00F3: %{date}.\",\"title\":\"Execuci\u00F3\"},\"expenses\":\"Despeses\",\"expenses_per_inhabitant\":\"Despesa per habitant\",\"expenses_per_inhabitant_tooltip\":\"Pressupost inicial dividit pel nombre d\u2019habitants\",\"expenses_per_inhabitant_updated\":\"Pres. per hab. actual\",\"header\":\"Pressupostos\",\"in_total\":\"En total\",\"income\":\"Ingressos\",\"income_per_inhabitant\":\"Ingressos per habitant\",\"income_per_inhabitant_tooltip\":\"Pressupost inicial dividit pel nombre d\u2019habitants\",\"inhabitants\":\"Habitants\",\"inhabitants_tooltip\":\"Nombre d\u2019habitants\",\"initial_estimate\":\"sobre el pres. inicial\",\"initial_estimate_per_inhabitant\":\"sobre el pres. inicial per hab.\",\"less\":\"menys\",\"level_1_category\":\"Categoria nivell 1\",\"level_2_category\":\"Categoria nivell 2\",\"main_budget_levels_legend_down\":\"Han baixat\",\"main_budget_levels_legend_one\":\"Canvi entre aquest any\",\"main_budget_levels_legend_two\":\"i el passat\",\"main_budget_levels_legend_up\":\"Han pujat\",\"main_budget_levels_per_inhabitant\":\"per habitant\",\"main_budget_levels_timeline\":\"Compara despeses i ingressos any per any\",\"main_budget_levels_tooltip_article\":\"des de\",\"main_budget_levels_tooltip_down\":\"Ha baixat un\",\"main_budget_levels_tooltip_up\":\"Ha pujat un\",\"main_budget_lines\":\"Els principals ingressos i despeses %{from_your_organization_name}\",\"main_budget_lines_expense\":\"Despeses\",\"main_budget_lines_income\":\"Ingressos\",\"more\":\"m\u00E9s\",\"most_interesting_budget_lines\":\"Despeses que m\u00E9s t\\'interessen\",\"most_interesting_budget_lines_description\":\"Et mostrem algunes de les partides que m\u00E9s afecten en el dia a dia de la ciutadania. Tamb\u00E9 pots consultar l\\'explorador complet.\",\"not_available_short\":\"No disp.\",\"note_about_the_data\":\"Nota sobre les dades\",\"note_about_the_data_title\":\"La base de dades que utilitzem no inclou dades per al 100% dels municipis, aix\u00ED que les mitjanes estan calculades amb les dades que existeixen (que s\u00F3n la gran majoria). M\u00E9s informaci\u00F3 a les nostres preguntes freq\u00FCents.\",\"per_person\":\"Per habitant\",\"planned_vs_executed_other_year_html\":\"En %{year} va ser un %{link}\",\"search_for_a_budget_line\":\"Cerca una partida\",\"see_all\":\"Veure tots\",\"stories_header\":\"T\\'expliquem el pressupost\",\"story_1\":{\"lede\":\"Et contem quines s\u00F3n les prioritats pressupuest\u00E0ries per al 2017 segons les quals hem articulat el pla econ\u00F2mic.\",\"title\":\"Actuacions de car\u00E0cter general\"},\"story_2\":{\"lede\":\"Et contem quines s\u00F3n les prioritats pressupuest\u00E0ries per al 2017 segons les quals hem articulat el pla econ\u00F2mic.\",\"title\":\"Pressupostos i medi ambient\"},\"story_3\":{\"lede\":\"Et contem quines s\u00F3n les prioritats pressupuest\u00E0ries per al 2017 segons les quals hem articulat el pla econ\u00F2mic.\",\"title\":\"Potenciant l\\'esport\"},\"title\":\"Pressupostos municipals de %{place} - %{year}\",\"top_expense_category\":\"Categoria\",\"top_expense_value\":\"Quantitat\",\"top_income_category\":\"Categoria\",\"top_income_value\":\"Quantitat\",\"total_expenses\":\"Despesa total\",\"total_expenses_tooltip\":\"Pressupost inicial de despesa\",\"total_expenses_updated\":\"Pressupost actual\",\"visualize\":\"Visualitza les despeses per habitant o el total\"}},\"budgets_elaboration\":{\"index\":{\"at_a_glance\":\"Evoluci\u00F3 de la despesa i comparaci\u00F3\",\"auto_funding\":\"Capacitat d\\'autofinan\u00E7ament\",\"auto_funding_tooltip\":\"Percentatge dels ingressos fiscals respecte als ingressos corrents\",\"by_custom_category\":\"per \u00E0rea\",\"by_economic_expense\":\"en qu\u00E8 es gasta\",\"by_economic_income\":\"en qu\u00E8 s\\'ingressa\",\"by_functional_expense\":\"per a qu\u00E8\",\"category_percentage\":\"% s/ Total\",\"category_value\":\"Quantitat\",\"context\":\"Context\",\"debt_level\":\"Nivell d\\'endeutament\",\"debt_level_tooltip\":\"Necessitat de financiaci\u00F3 external pera a poder pagar despeses, una vegada utilizats els recursos tributaris i subvencions i transfer\u00E8ncies\",\"description\":\"L\\'equip de govern publica l\u2019esborrany del pressupost del pr\u00F2xim exercici per compartir en obert amb l\\'oposici\u00F3 i els ve\u00EFns i ve\u00EFnes. Entre tots i totes podem elaborar el pressupost m\u00E9s adient per a %{place_name}.\",\"diff_previous\":\"vs. anterior\",\"expenses_per_inhabitant\":\"Despesa per habitant\",\"expenses_per_inhabitant_tooltip\":\"Pressupost inicial dividit pel nombre d\\'habitants\",\"explore_the_detail\":\"Explora el detall\",\"header\":\"Tramitaci\u00F3 del pressupost %{year}\",\"in_total\":\"En total\",\"income_per_inhabitant\":\"Ingressos per habitant\",\"income_per_inhabitant_tooltip\":\"Pressupost inicial dividit pel nombre d\u2019habitants\",\"main_budget_levels_timeline\":\"Compara despeses i ingressos any per any\",\"main_budget_lines\":\"Els principals ingressos i despeses %{from_your_organization_name}\",\"main_budget_lines_expense\":\"Despeses\",\"main_budget_lines_income\":\"Ingressos\",\"metric_boxes_data\":\"Les dades\",\"metric_boxes_data_description\":\"Aix\u00ED canviar\u00E0 el pressupost del proper exercici\",\"net_savings\":\"Estalviament net\",\"net_savings_tooltip\":\"Ingressos corrents menys despeses corrents i despeses financieres\",\"next_year_proposal\":\"Proposta per al %{year}\",\"no_data\":\"Ni ha dades per a aquesta classificaci\u00F3\",\"note_about_the_data\":\"Nota sobre les dades\",\"note_about_the_data_title\":\"La base de dades que utilitzem no inclou dades per al 100% dels municipis, aix\u00ED que les mitjanes estan calculades amb les dades que existeixen (que s\u00F3n la gran majoria). M\u00E9s informaci\u00F3 a les nostres preguntes freq\u00FCents.\",\"per_person\":\"Per habitant\",\"proposal\":\"Proposta\",\"total_expenses\":\"Despesa total\",\"total_expenses_tooltip\":\"Pressupost inicial\",\"total_income\":\"Ingr\u00E9s total\",\"total_income_tooltip\":\"Pressupost inicial d\\'ingressos\",\"visualize\":\"Visualitza la despesa per habitant o total\"}},\"budgets_execution\":{\"execution_table\":{\"deviation\":\"Desviaci\u00F3\",\"executed\":\"Executat\",\"planned\":\"Pres.\",\"view_less\":\"Veure menys\",\"view_more\":\"Veure m\u00E9s\"},\"index\":{\"budget_guide\":\"Consulta la Guia del pressupost\",\"budget_lines_expense_higher\":\"Partides de despeses molt superiors al pressupost\",\"budget_lines_expense_lower\":\"Partides de despeses molt inferiors al pressupost\",\"budget_lines_income_higher\":\"Partides d\\'ingressos molt superiors al pressupost\",\"budget_lines_income_lower\":\"Partides d\\'ingressos molt inferiors al pressupost\",\"category\":\"Categoria\",\"custom_button\":\"Personalitzada\",\"description\":\"L\\'execuci\u00F3 fa refer\u00E8ncia a les despeses finals comparades amb el pressupost inicial actualitzat. Hi poden haver canvis, perqu\u00E8 \u00E9s impossible preveure totes les despeses amb precisi\u00F3 absoluta\",\"economic\":\"Econ\u00F2mica\",\"economic_button\":\"En qu\u00E8 es gasta\",\"euros\":\"En euros\",\"execution_disclaimer\":\"Es normal que hi haja desviacions ja que \u00E9s impossible preveure totes les despeses amb precisi\u00F3 absoluta.\",\"execution_help\":\"L\\'execuci\u00F3 es la quantitat que finalment s\\'ha gastat sobre el pressupost inicial actualitzat.\",\"expenses_executed\":\"Despeses executades\",\"expenses_planned\":\"Despeses pressupostades\",\"functional\":\"Funcional\",\"functional_button\":\"Per a qu\u00E8 es gasta\",\"higher_execution\":\"M\u00E9s execuci\u00F3\",\"income_executed\":\"Ingressos executats\",\"income_planned\":\"Ingressos pressupostats\",\"initial_estimate\":\"Pressupost inicial\",\"initial_estimate_per_inhabitant\":\"Pressupost inicial per habitant\",\"lower_execution\":\"Menys execuci\u00F3\",\"metric\":{\"execution\":{\"expenses_title\":\"Execuci\u00F3 de despeses\",\"income_title\":\"Execuci\u00F3 d\\'ingressos\",\"previous_execution_message\":\"El %{year} l\\'execuci\u00F3 va ser del %{percentage}\"}},\"percentage\":\"Percentatge\",\"sort\":\"Ordre\",\"title\":\"Execuci\u00F3 pressupost\u00E0ria\",\"tooltip_disclaimer\":\"\\\\u003cstrong\\\\u003eAquesta \u00E9s una aproximaci\u00F3\\\\u003c/strong\\\\u003e. \\\\u003cbr /\\\\u003e Al llarg de l\\'any sorgeixen imprevistos que canvien la quantitat o la finalitat de les despeses o ingressos.\",\"value\":\"Valor\",\"vis\":{\"absolute\":\"Execuci\u00F3 en \u20AC\",\"empty_lines\":\"No hi ha dades disponibles per aquesta classificaci\u00F3 en aquest any. Per favor, selecciona un altre filtrat.\",\"expenses\":{\"title\":\"L\\'estat de l\\'execuci\u00F3 de les despeses\"},\"income\":{\"title\":\"L\\'estat de l\\'execuci\u00F3 dels ingressos\"},\"lines_title\":\"Partides pressupost\u00E0ries\",\"percent\":\"% de progr\u00E9s\",\"percent_log\":\"% de progr\u00E9s (log)\",\"tooltip\":\"S\\'ha executat un\",\"tooltip_budgeted\":\"Pressupostat inicial\",\"tooltip_budgeted_updated\":\"Pressupostat actualitzat\",\"tooltip_executed_amount\":\"Import executat\"}},\"widget_template_deviation\":{\"expense\":\"Despeses\",\"income\":\"Ingressos\",\"planned\":\"pressupostat\",\"real\":\"reals\"}},\"common\":{\"budget_line_description_html\":\"Aquesta partida compr\u00E8n les %{kind_what} en %{description}. Si vols saber m\u00E9s sobre aquesta partida pots consultar la partida pare: %{link}\",\"expense\":\"despesa\",\"expenses\":\"despeses\",\"income\":\"ingr\u00E9s\",\"incomes\":\"ingressos\"},\"events\":{\"gobierto_budgets_budgets_updated\":\"Pressuposts actualitzats\"},\"exports\":{\"budget_lines_description\":\"Compara despeses i ingressos any per any\",\"budget_lines_title\":\"Partides del pressupost\",\"invoices_description\":\"Dades per any\",\"invoices_title\":\"Prove\u00EFdors i Factures\"},\"featured_budget_lines\":{\"gobierto_site_template\":{\"how_much_place_in\":\"Quant es gasta %{place} en...\",\"last_year\":\"L\\'any passat vam gastar\",\"per_person\":\"Per habitant\",\"show_me_another\":\"Mostra\\'m un altre exemple\",\"title\":\"Algunes despeses destacades\",\"total\":\"Despesa total\"}},\"feedback\":{\"ask_more_information\":{\"ask_for_feedback\":\"Escriu el teu email per a que %{your_organization_name} et puga contestar\",\"send\":\"Enviar\",\"your_email\":\"El teu correu\"},\"follow\":{\"follow\":\"Seguir\",\"your_email\":\"El teu correu\"},\"follow_success\":{\"error\":\"Pareix que el correu introduit no es v\u00E0lid. Per favor revisa-ho\",\"share\":\"Vols compartir aquestes dades en\",\"share_text\":\"Informat i opina sobre el pressupost de %{place_name}\",\"success\":\"Molt b\u00E9! Revisa el teu correu i fes click en el enlla\u00E7 que t\\'hem enviat\"},\"step1\":{\"answer1_0\":\"Si\",\"answer1_1\":\"No\",\"understand\":\"Entens de qu\u00E8 va aquesta partida?\"},\"step2_no\":{\"answer_html\":\"El \\\\u003cstrong\\\\u003e%{datum}\\\\u003c/strong\\\\u003e de persones han dit que \\\\u003cstrong\\\\u003eNo entenen de qu\u00E8 va aquesta partida\\\\u003c/strong\\\\u003e\",\"ask\":\"Pots demanar ampliar la informaci\u00F3 sobre aquesta i altres partides\"},\"step2_yes\":{\"option1_html\":\"Em sembla \\\\u003cspan\\\\u003ePOC\\\\u003c/span\\\\u003e\",\"option2_html\":\"Em sembla \\\\u003cspan\\\\u003eAPROPIAT\\\\u003c/span\\\\u003e\",\"option3_html\":\"Em sembla \\\\u003cspan\\\\u003eMOLT\\\\u003c/span\\\\u003e\",\"question\":\"Creus que la quantitat de despesa es apropiada?\"},\"step3\":{\"option1\":\"Poc\",\"option2\":\"Apropiat\",\"option3\":\"Molt\",\"thanks\":\"Gr\u00E0cies por la teva opini\u00F3. Aix\u00F2 es el que pensa la resta de la gent:\"}},\"feedback_mailer\":{\"new_feedback_request\":{\"body\":\"Has rebut una nova petici\u00F3 d\\'informaci\u00F3 per a la partida %{budget_line_name} (%{year}) d\\'una persona amb el email %{person_email}.\",\"body_budgets\":\"Has rebut una nova petici\u00F3 d\\'informaci\u00F3 per al pressupostos del teu municipi d\\'una persona amb el email %{person_email}.\",\"subject\":\"Has rebut una nova petici\u00F3 d\\'informaci\u00F3\"}},\"indicators\":\"Indicadors\",\"indicators_intro\":\"Coneix els pressupostos de %{place} a partir de les principals xifres: estalvi brut, inversi\u00F3 per habitant o finan\u00E7ament d\\'inversions.\",\"invoices\":{\"show\":{\"empty\":\"Cap filtre t\u00E9 dades.\",\"fromto\":\"De a N\u00BA Fact.\",\"invoiced\":\"Import facturat\",\"more\":\"M\u00E9s de\",\"table\":{\"fields\":{\"date\":\"Data\",\"paid\":\"Pagat\",\"payment_date\":\"Data de pagament\",\"payment_date_limit\":\"Data prevista de pagament\",\"provider_id\":\"NIF\",\"provider_name\":\"Prove\u00EFdor\",\"subject\":\"Concepte\",\"value\":\"Quantitat\"},\"pager\":{\"first\":\"Primer\",\"format\":\"P\u00E0gines %{tpl} de %{tpl2}\",\"last\":\"\u00DAltim\",\"next\":\"Seg\u00FCent\",\"prev\":\"Anterior\"}}}},\"layouts\":{\"application\":{\"budgets\":\"Pressupostos\"},\"menu_subsections\":{\"data\":\"Dades\",\"elaboration\":\"Elaboraci\u00F3\",\"execution\":\"Execuci\u00F3\",\"guide\":\"Guia\",\"indicators\":\"Indicadors\",\"providers\":\"Prove\u00EFdors i Factures\",\"receipt\":\"Rebut\"}},\"providers\":{\"index\":{\"all_invoices\":\"Totes les factures\",\"amount_distribution\":\"Distribuci\u00F3 per imports\",\"and_more_html\":\"i \\\\u003cspan id=\\\\\"providers-number\\\\\"\\\\u003e\\\\u003c/span\\\\u003e prove\u00EFdors m\u00E9s\",\"are_from\":\"s\u00F3n de\",\"check_detail\":\"Consulta el detall\",\"corporation_sa\":\"societats an\u00F2nimes\",\"corporation_sl\":\"societats limitades i altres\",\"description\":\"A quins prove\u00EFdors contracta %{the_organization_name}? Quines factures paga? Des d\\'aquesta secci\u00F3 podr\u00E0s consultar i revisar el detall de cadascun dels pagaments que realitza %{the_organization_name}.\",\"freelances\":\"aut\u00F2noms\",\"invoices\":\"Factures\",\"invoices_from_which\":\"De les quals\",\"invoices_sum\":\"factures sumen un total de\",\"largest_provider_html\":\"El major prove\u00EFdor suposa un \\\\u003cspan id=\\\\\"largestProvider\\\\\"\\\\u003e\\\\u003c/span\\\\u003e de tota la facturaci\u00F3\",\"last_12_months\":\"\u00DAltims 12 mesos\",\"last_3_months\":\"\u00DAltims 3 mesos\",\"less_than_1000_html\":\"El \\\\u003cspan id=\\\\\"lessThan1000\\\\\"\\\\u003e\\\\u003c/span\\\\u003e de les factures s\u00F3n menors de 1.000 \u20AC\",\"loading\":\"Carregant...\",\"main_providers\":\"Principals prove\u00EFdors\",\"mean_amount\":\"import mig\",\"mean_and_median\":\"Mitjana i mediana\",\"mean_and_median_summary\":\"\u00C9s a dir, la meitat de les factures s\u00F3n d\\'aquest import o inferior\",\"mean_summary\":\"Import resultant de sumar els imports de totes les factures dividit pel nombre de factures\",\"median_amount\":\"mediana dels imports\",\"months_distribution\":\"Distribuci\u00F3 per mesos\",\"percentile_10_html\":\"El \\\\u003cspan id=\\\\\"percentile10\\\\\"\\\\u003e\\\\u003c/span\\\\u003e de les factures concentren el 10 % de la facturaci\u00F3\",\"percentile_50_html\":\"El \\\\u003cspan id=\\\\\"percentile50\\\\\"\\\\u003e\\\\u003c/span\\\\u003e de les factures concentren el 50 % de la facturaci\u00F3\",\"previous\":\"Anteriors\",\"sum_amount\":\"IMPORT ACUMULAT\",\"this_year\":\"Aquest any\",\"view_data_from\":\"Veure les dades de\"}},\"receipts\":{\"show\":{\"description\":\"Part del pressupost del teu municipi es finan\u00E7a directament d\\'impostos i taxes locals. Calcula quant aportes tu al pressupost d\\'acord a la teva casa, vehicles...\",\"detail\":\"Detall de la teva contribuci\u00F3\",\"explanation\":\"Introdueix les quantitats que has pagat per a cadascun dels conceptes en\",\"pick_to_calculate\":\"Selecciona per calcular\",\"share\":\"Comparteix-ho\",\"share_text\":\"Comprova com \u00E9s la teva aportaci\u00F3 al pressupost de d\\'\",\"title\":\"Quina es la teva contribuci\u00F3 al pressupost de %{site_name}?\",\"your_contribution\":\"La teva contribuci\u00F3 als pressupostos de %{site_name}\"}},\"shared\":{\"data_updated_at\":{\"last_update\":\"\u00DAltima actualitzaci\u00F3\"},\"enough_information\":{\"enough_information\":\"Hi ha prou informaci\u00F3?\",\"enough_information_cta\":\"Demana m\u00E9s informaci\u00F3\",\"enough_information_desc\":\"Si trobes que cal incloure m\u00E9s informaci\u00F3 per tenir una visi\u00F3 m\u00E9s completa, comunica-ho i et respondrem\"}},\"visualizations\":{\"G_custom\":\"Despeses per \u00E0rea\",\"G_economic\":\"En qu\u00E8 es gasta\",\"G_functional\":\"Per a qu\u00E8 es gasta\",\"I_custom\":\"Ingressos per \u00E0rea\",\"I_economic\":\"En qu\u00E8 s\\'ingressa\",\"category_per_inhabitant\":\"%{category} per habitant\",\"expenses_per_inhabitant\":\"Despesa per habitant\",\"expenses_per_inhabitant_updated\":\"Despesa per habitant actual\",\"inhabitant_short\":\"hab\",\"mean_autonomy\":\"Mitjana auton\u00F2mica\",\"mean_national\":\"Mitjana estatal\",\"mean_province\":\"Mitjana provincial\",\"previous_year_diff\":\"Canvi any anterior\",\"total_expenses\":\"Despesa total\"}},\"gobierto_calendars\":{\"calendar_integration\":{\"auth_error\":{\"message\":\"Les credencials del calendari no s\u00F3n v\u00E0lides.\"},\"error\":{\"message\":\"Hi ha hagut un problema sincronitzant el calendari.\"},\"timeout_error\":{\"message\":\"El temps de connexi\u00F3 al servidor de calendaris ha expirat.\"}},\"events\":{\"gobierto_calendars_event_published\":\"%{subject_name}\",\"gobierto_calendars_event_updated\":\"%{subject_name}\"},\"fullcalendar\":{\"day\":\"Dia\",\"list\":\"Llista\",\"month\":\"Mes\",\"today\":\"Avui\",\"week\":\"Setmana\"}},\"gobierto_cms\":{\"events\":{\"gobierto_cms_page_created\":\"P\u00E0gina creada\",\"gobierto_cms_page_published\":\"P\u00E0gina publicada\",\"gobierto_cms_page_updated\":\"P\u00E0gina actualitzada\",\"gobierto_cms_section_created\":\"Secci\u00F3 creat\",\"gobierto_cms_section_item_created\":\"P\u00E0gina afegida a una secci\u00F3\",\"gobierto_cms_section_item_deleted\":\"P\u00E0gina esborrada de secci\u00F3\",\"gobierto_cms_section_updated\":\"Secci\u00F3 actualitzada\"},\"pages\":{\"templates\":{\"page\":{\"documents\":\"Documents\"}}}},\"gobierto_common\":{\"dynamic_content\":{\"table_component\":{\"attachment\":\"Adjunt\",\"download\":\"Descarregar\",\"download_attachment\":\"Descarregar adjunt\",\"view_content\":\"Veure contingut\"}},\"events\":{\"gobierto_common_collection_created\":\"Col\u00B7lecci\u00F3 creat\",\"gobierto_common_collection_updated\":\"Col\u00B7lecci\u00F3 actualizat\",\"gobierto_common_term_created\":\"Terme creat\",\"gobierto_common_term_updated\":\"Terme actualitzat\"},\"visualizations\":{\"absolute\":\"Execuci\u00F3 en \u20AC\",\"adults\":\"Poblaci\u00F3 activa\",\"age\":\"Edat\",\"axis\":\"anys\",\"between_25_44\":\"Entre 25 i 44\",\"cards\":{\"active_pop\":{\"figure_first\":\"del total\",\"figure_second\":\"persones\",\"title\":\"Poblaci\u00F3 activa\"},\"births\":{\"country\":\"Mitjana estatal\",\"place\":\"%{place}\",\"province\":\"Mitjana provincial\",\"title\":\"Taxa de naixements\"},\"budget_by_inhabitant\":{\"title\":\"Pressupost per habitant\"},\"cars\":{\"title\":\"Cotxes per habitant\"},\"cars_tax\":{\"figure_first\":\"%{place}\",\"figure_second\":\"mitjana provincial\",\"title\":\"Impost a turismes\"},\"companies\":{\"title\":\"Empreses\"},\"construction_tax\":{\"figure_first\":\"%{place}\",\"figure_second\":\"mitjana provincial\",\"title\":\"Impost a les contruccions\"},\"contracts_comparison\":{\"figure_first\":\"temporals\",\"figure_second\":\"indefinits\",\"title\":\"Contractes en el darrer mes\"},\"contracts_sector\":{\"agriculture\":\"Agricultura\",\"construction\":\"Construcci\u00F3\",\"industry\":\"Ind\u00FAstria\",\"services\":\"Serveis\",\"title\":\"Contractes per sector\"},\"deaths\":{\"country\":\"Mitjana estatal\",\"place\":\"%{place}\",\"province\":\"Mitjana provincial\",\"title\":\"Taxa de defuncions\"},\"debt_by_inhabitant\":{\"title\":\"Deute per habitant\"},\"debt_level\":{\"title\":\"Nivell d\\'endeutament\"},\"economic_tax\":{\"title\":\"Impost a les activitats econ\u00F2miques\"},\"expenditure_rigidity\":{\"title\":\"Rigidesa de despesa\"},\"financial_charge\":{\"title\":\"C\u00E0rrega financera\"},\"financial_risk\":{\"title\":\"Risc financer\"},\"freelancers\":{\"title\":\"Aut\u00F3noms\"},\"frequency\":\"Actualitzaci\u00F3 %{type}\",\"gross_saving\":{\"title\":\"Estalvi brut\"},\"gross_savings_rate\":{\"title\":\"\u00CDndex d\\'estalvi brut\"},\"houses\":{\"figure_first\":\"familiars\",\"figure_second\":\"principals\",\"title\":\"Habitatge\"},\"ibi\":{\"first_column\":\"\",\"second_column\":\"Urb\u00E0ns\",\"third_column\":\"R\u00FAstics\",\"title\":\"Impost sobre els B\u00E9ns Immobles\"},\"income\":{\"first_column\":\"\",\"second_column\":\"Per habitant\",\"third_column\":\"Per llar\",\"title\":\"Renda municipal\"},\"income_overview\":{\"figure_first\":\"%{place}\",\"figure_second\":\"Espanya\",\"title\":\"Renda bruta\"},\"investment_by_inhabitant\":{\"title\":\"Inversi\u00F3 per habitant\"},\"investment_financing\":{\"title\":\"Finan\u00E7ament inversions\"},\"liability_cost\":{\"title\":\"Cost deute\"},\"meta\":{\"time\":\" al \",\"where\":\"A \"},\"net_saving\":{\"title\":\"Ahorro net\"},\"net_savings_rate\":{\"title\":\"\u00CDndex d\\'estalvi net\"},\"per_capita_investment\":{\"title\":\"Inversi\u00F3 per habitant\"},\"per_capita_tax_burden\":{\"title\":\"Pressi\u00F3 fiscal per habitant\"},\"population\":{\"title\":\"Habitants\"},\"self_financing_capacity\":{\"title\":\"Capacitat d\\'autofinan\u00E7ament\"},\"ss_members\":{\"title\":\"Afiliats a la Seguretat Social\"},\"tax_autonomy\":{\"title\":\"Autonomia fiscal\"},\"unemployed_sector\":{\"agriculture\":\"Agricultura\",\"construction\":\"Construcci\u00F3\",\"industry\":\"Ind\u00FAstria\",\"services\":\"Serveis\",\"title\":\"Desempleats per sector\"},\"updated\":\"Darrera actualitzaci\u00F3\"},\"country\":\"Espanya\",\"elderly\":\"Majors\",\"elderly_info\":\"El %{percent} de la poblaci\u00F3 t\u00E9 m\u00E9s de %{limit} anys\",\"empty_lines\":\"No hi ha dades disponibles per aquesta classificaci\u00F3 en aquest any. Per favor, selecciona un altre filtrat.\",\"frequency\":\"Actualitzaci\u00F3 %{type}\",\"gross_income\":\"Renda bruta\",\"increase\":\"Augmentar\",\"inhabitant_short\":\"hab\",\"inhabitants\":\"Habitants\",\"keep\":\"Mantindre\",\"label\":\"habitants\",\"less_25\":\"Menors de 25\",\"lines_title\":\"Partides pressupost\u00E0ries\",\"main_budget_levels_legend_down\":\"Han baixat\",\"main_budget_levels_legend_one\":\"Canvi entre aquest any\",\"main_budget_levels_legend_two\":\"i el passat\",\"main_budget_levels_legend_up\":\"Han pujat\",\"main_budget_levels_per_inhabitant\":\"per habitant\",\"main_budget_levels_tooltip_article\":\"des de\",\"main_budget_levels_tooltip_article_last\":\"des de l\\'anterior\",\"main_budget_levels_tooltip_down\":\"Ha baixat un\",\"main_budget_levels_tooltip_up\":\"Ha pujat un\",\"mean\":\"Edat mitja: %{age} anys\",\"mean_autonomy\":\"Mitjana auton\u00F2mica\",\"mean_national\":\"Mitjana estatal\",\"mean_province\":\"Mitjana provincial\",\"median\":\"Edat mitjana: %{age} anys\",\"men\":\"Homes\",\"million\":\"mili\u00F3\",\"mode\":\"Edat m\u00E9s com\u00FA: %{age} anys\",\"more_44\":\"M\u00E9s de 44\",\"percent\":\"% de progr\u00E9s\",\"percent_log\":\"% de progr\u00E9s (log)\",\"previous_year_diff\":\"Canvi any anterior\",\"project\":\"Projecte\",\"questions\":\"Preguntes\",\"reduce\":\"Reduir\",\"thousand\":\"mil\",\"time\":\" al \",\"title\":\"Riquesa i poblaci\u00F3 a la prov\u00EDncia\",\"tooltip\":\"S\\'ha executat un\",\"tooltip_budgeted\":\"Pressupostat inicial\",\"tooltip_budgeted_updated\":\"Pressupostat actualitzat\",\"tooltip_executed_amount\":\"Import executat\",\"unemployed\":\"Aturada\",\"where\":\"A \",\"women\":\"Dones\",\"youth\":\"Menors\",\"youth_info\":\"El %{percent} de la poblaci\u00F3 t\u00E9 menys de %{limit} anys\"},\"vue_components\":{\"block_header\":{\"all\":\"Totes\",\"none\":\"Cap\"},\"calendar\":{\"date\":\"Escolliu data\"},\"filters\":{\"clear\":\"Netejeu filtres\"},\"pagination\":{\"next\":\"Seg\u00FCent\",\"previous\":\"Anterior\"},\"read_more\":{\"less\":\"Vegeu-ne menys\",\"more\":\"Vegeu-ne m\u00E8s\"},\"table\":{\"customize_columns\":\"Personalitzeu columnes\",\"no_data\":\"No hi ha dades per a aquest criteri\"}}},\"gobierto_dashboards\":{\"available_cards\":\"Targetes disponibles\",\"back\":\"enrere\",\"changes\":\"Dashboard modificat\",\"date\":\"Data: \",\"default_title\":\"T\u00EDtol del dashboard\",\"delete\":\"Esborrar\",\"delete_dialog\":\"Desitjeu esborrar el dashboard?\",\"discard\":\"tancar sense guardar\",\"indicators_amount\":\"\u279E %{amount} indicadors\",\"instructions\":\"\\\\\"\u21E7 Selecciona un tipus de targeta i inclou-la en l\\'\u00E0rea central \u279E\\\\n\\\\nDespr\u00E9s podr\u00E0s configurar-la.\\\\\"\\\\n\",\"objective\":\"Objectiu\",\"percentage\":\"Consecuci\u00F3\",\"percentage_alt\":\"% consecuci\u00F3\",\"placeholder\":\"Escriu el t\u00EDtol de l\\'indicador o projecte\",\"public\":\"P\u00FAblic\",\"save\":\"Guardar\",\"select\":\"Selecciona l\\'indicador\",\"type\":\"Tipus\",\"value\":\"Aconseguit\",\"view_item\":\"Veure \u00EDtem\",\"widgets\":{\"html\":\"Contingut HTML\",\"indicator\":\"Indicador\",\"individual\":\"Individual\",\"table\":\"Taula\"}},\"gobierto_data\":{\"accessibility\":{\"editor\":\"Editor SQL\"},\"data_type\":{\"boolean\":\"boolean\",\"date\":\"data\",\"datetime\":\"data i hora\",\"decimal\":\"decimal\",\"hstore\":\"hstore\",\"integer\":\"enter\",\"jsonb\":\"jsonb\",\"string\":\"cadena\",\"text\":\"text\",\"time\":\"temps\",\"timestamp\":\"data i hora\",\"timestampz\":\"data i hora\"},\"events\":{\"gobierto_data_dataset_dataset_created\":\"Conjunt de dades creat\",\"gobierto_data_dataset_dataset_data_updated\":\"Dades de conjunt de dades actualitzats\",\"gobierto_data_dataset_dataset_deleted\":\"Conjunt de dades eliminat\",\"gobierto_data_dataset_dataset_updated\":\"Conjunt de dades actualitzat\"},\"layouts\":{\"application\":{\"gobierto_data\":\"Dades\"}},\"projects\":{\"all\":\"Totes\",\"buttonFork\":\"Feu clic per crear una versi\u00F3 d\\'aquesta consulta\",\"buttonQueries\":\"Vegeu consultes (c)\",\"buttonRecentQueries\":\"Vegeu consultes recents (r)\",\"buttonRunQuery\":\"Executeu consulta (CMD/WIN + Enter)\",\"cancel\":\"Cancel\u00B7leu\",\"categories\":\"Categories\",\"createCopy\":\"Crear una c\u00F2pia\",\"dashboards\":\"Dashboards\",\"data\":\"Dades\",\"dataset\":\"Conjunts de dades\",\"datasetUpdated\":\"Darrers datasets actualitzats\",\"deleteQuery\":\"Esteu segur que voleu suprimir aquesta consulta?\",\"deleteViz\":\"Esteu segur que voleu suprimir aquesta visualitzaci\u00F3?\",\"description\":\"Descripci\u00F3\",\"download\":\"Desc\u00E0rrega\",\"downloadData\":\"Descarregueu dades\",\"edit\":\"Editeu\",\"emptyRecentQueries\":\"No hi ha consultes recents\",\"favs\":\"Favorites\",\"frequency\":\"Freq\u00FC\u00E8ncia\",\"guide\":\"Guia per utilitzar l\\'editor SQL\",\"license\":\"Llic\u00E8ncia\",\"link\":\"Enlla\u00E7\",\"map\":\"Mapa\",\"modifiedQuery\":\"Consulta modificada\",\"modifiedVisualization\":\"Visualitzaci\u00F3 modificada\",\"numberOfRows\":\"Nombre de registres\",\"preview\":\"Previsualitzeu\",\"private\":\"Privat\",\"queries\":\"Consultes\",\"query\":\"Consulta\",\"queryEmpty\":\"Cap consulte disponible\",\"queryExecuted\":\"Consulta executada en\",\"queryName\":\"Nom consulta\",\"recents\":\"Recents\",\"records\":\"Registres\",\"resetQuery\":\"Restablir la consulta\",\"resetViz\":\"Restablir la visualitzaci\u00F3\",\"resources\":\"Recursos\",\"revert\":\"Revertir\",\"runQuery\":\"Executeu consulta\",\"save\":\"Deseu\",\"savedQuery\":\"Consulta desada\",\"savedVisualization\":\"Visualitzaci\u00F3 desada\",\"sets\":\"Conjunts\",\"showAll\":\"Vegeu-ho tot\",\"showLess\":\"Vegeu-ne menys\",\"sourceDataset\":\"Font\",\"sourceDatasetUrl\":\"Font url\",\"subject\":\"Tema\",\"summary\":\"Resum\",\"updated\":\"Actualizat\",\"visEmpty\":\"Cap visualitzaci\u00F3 disponible\",\"visName\":\"Nom visualitzaci\u00F3\",\"visPrivate\":\"Les teves visualitzacions\",\"visPublic\":\"Totes\",\"visualizations\":\"Visualitzacions\",\"visualize\":\"Visualitzar\",\"yourQueries\":\"Les teves consultes\"}},\"gobierto_exports\":{\"exports\":{\"index\":{\"no_submodules\":\"No hi ha cap subm\u00F2dul actiu\",\"subtitle\":\"Des d\\'aquesta p\u00E0gina pots descarregar en format reutilitzable el contingut d\\'aquesta web\",\"title\":\"Descarrega dades\"}}},\"gobierto_indicators\":{\"events\":{\"gobierto_indicators_indicator_updated\":\"Indicator actualitzat\"},\"indicators\":{\"gci\":{\"gci_description\":\"Els indicadors GCI (Global City Indicators), que reflecteixen la qualitat de vida de la ciutat, els defineix el Banc Mundial , associaci\u00F3 amb el prop\u00F2sit de combatre la pobresa i recolzar el desenvolupament. Els indicadors poden variar segons l\u2019any seleccionat.\",\"gci_title\":\"Indicadors GCI\",\"title\":\"Indicadors %{year}\"},\"ip\":{\"ip_description\":\"Infoparticipa \u00E9s un projecte desenvolupat per el LPCCP, des de l\\'any 2012, l\\'objectiu \u00E9s avaluar la informaci\u00F3 que es publica als webs de les administracions p\u00FAbliques per promoure que millori la seva transpar\u00E8ncia i qualitat.\",\"ip_title\":\"Indicadors Infoparticipa\",\"title\":\"Indicadors %{year}\"},\"ita\":{\"ita_description\":\"Els indicadors ITA (\u00CDndex de Transpar\u00E8ncia dels Ajuntaments) s\u00F3n una eina que l\\'organitzaci\u00F3 no governamental Transpar\u00E8ncia Internacional posa a disposici\u00F3 dels ajuntaments espanyols per mesurar el seu nivell de transpar\u00E8ncia. Avaluen la gesti\u00F3 realitzada per l\u2019ajuntament d\u2019una ciutat a trav\u00E9s d\\'un conjunt integrat de 80 indicadors agrupat en diverses \u00E0rees.\",\"ita_title\":\"Indicadors ITA\",\"title\":\"Indicadors %{year}\"},\"shared\":{\"latest_update_html\":\"\\\\u003cstrong\\\\u003eDarrera actualitzaci\u00F3:\\\\u003c/strong\\\\u003e %{date}\"},\"template\":{\"calculation\":\"C\u00E0lcul\",\"false\":\"no es compleix\",\"methodology\":\"Metodologia\",\"more\":\"M\u00E9s informaci\u00F3\",\"source\":\"Font\",\"true\":\"es compleix\"}},\"layouts\":{\"application\":{\"indicators\":\"Indicadors\"},\"navigation\":{\"sub\":{\"gci\":\"Indicadors GCI\",\"ip\":\"Indicadors Infoparticipa\",\"ita\":\"Indicadors ITA\"}}}},\"gobierto_investments\":{\"events\":{\"gobierto_investments_project_project_created\":\"Projecte d\\'inversi\u00F3 creat\",\"gobierto_investments_project_project_updated\":\"Projecte d\\'inversi\u00F3 actualitzat\"},\"layouts\":{\"application\":{\"investments\":\"Inversions\",\"investments_paragraph\":\"Consulta els projectes que t\u00E9 en marxa l\\'Ajuntament, els que comen\u00E7aran properament, i els plans a mig termini. Detall sobre el pla anual d\\'inversions i mecanismes de seguiment de les obres en marxa.\"}},\"projects\":{\"back\":\"vegeu-ho tot\",\"description\":\"Descripci\u00F3\",\"detail_title\":\"Detall del projecte\",\"empty\":\"Sense resultats\",\"exit\":\"Sortir\",\"gallery\":\"Galeria\",\"list\":\"Llista\",\"loading\":\"Carregant dades...\",\"map\":\"Mapa\",\"project\":{\"one\":\"%{count} projecte\",\"other\":\"%{count} projectes\"},\"reset\":\"Netejeu filtres\",\"see\":\"Vegeu-ho de nou\",\"showall\":\"Vegeu-ho tot\",\"showless\":\"Vegeu-ne menys\",\"summary\":\"Resum per estats\",\"tech_sheet\":\"Fitxa t\u00E8cnica\",\"tour\":\"Tour virtual\"}},\"gobierto_observatory\":{\"cards\":{\"active_pop\":{\"figure_first\":\"del total\",\"figure_second\":\"persones\",\"title\":\"Poblaci\u00F3 activa\"},\"births\":{\"country\":\"Mitjana estatal\",\"place\":\"%{place}\",\"province\":\"Mitjana provincial\",\"title\":\"Taxa de naixements\"},\"budget_by_inhabitant\":{\"title\":\"Pressupost per habitant\"},\"cars\":{\"title\":\"Cotxes per habitant\"},\"cars_tax\":{\"figure_first\":\"%{place}\",\"figure_second\":\"mitjana provincial\",\"title\":\"Impost a turismes\"},\"companies\":{\"title\":\"Empreses\"},\"construction_tax\":{\"figure_first\":\"%{place}\",\"figure_second\":\"mitjana provincial\",\"title\":\"Impost a les contruccions\"},\"contracts_comparison\":{\"figure_first\":\"temporals\",\"figure_second\":\"indefinits\",\"title\":\"Contractes en el darrer mes\"},\"contracts_sector\":{\"agriculture\":\"Agricultura\",\"construction\":\"Construcci\u00F3\",\"industry\":\"Ind\u00FAstria\",\"services\":\"Serveis\",\"title\":\"Contractes per sector\"},\"deaths\":{\"country\":\"Mitjana estatal\",\"place\":\"%{place}\",\"province\":\"Mitjana provincial\",\"title\":\"Taxa de defuncions\"},\"debt_by_inhabitant\":{\"title\":\"Deute per habitant\"},\"economic_tax\":{\"title\":\"Impost a les activitats econ\u00F2miques\"},\"freelancers\":{\"title\":\"Aut\u00F3noms\"},\"frequency\":\"Actualitzaci\u00F3 %{type}\",\"houses\":{\"figure_first\":\"familiars\",\"figure_second\":\"principals\",\"title\":\"Habitatge\"},\"ibi\":{\"first_column\":\"\",\"second_column\":\"Urb\u00E0ns\",\"third_column\":\"R\u00FAstics\",\"title\":\"Impost sobre els B\u00E9ns Immobles\"},\"income\":{\"first_column\":\"\",\"second_column\":\"Bruta\",\"third_column\":\"Disponible\",\"title\":\"Renda municipal\"},\"income_overview\":{\"figure_first\":\"%{place}\",\"figure_second\":\"Espanya\",\"title\":\"Renda bruta\"},\"investment_by_inhabitant\":{\"title\":\"Inversi\u00F3 per habitant\"},\"meta\":{\"time\":\" al \",\"where\":\"A \"},\"population\":{\"title\":\"Habitants\"},\"ss_members\":{\"title\":\"Afiliats a la Seguretat Social\"},\"unemployed_sector\":{\"agriculture\":\"Agricultura\",\"construction\":\"Construcci\u00F3\",\"industry\":\"Ind\u00FAstria\",\"services\":\"Serveis\",\"title\":\"Desempleats per sector\"},\"updated\":\"Darrera actualitzaci\u00F3\"},\"graphics\":{\"age_distribution\":{\"axis\":\"anys\",\"label\":\"habitants\",\"title\":\"Descobreix la distribuci\u00F3 per edats del teu municipi\"},\"population_pyramid\":{\"adults\":\"Poblaci\u00F3 activa\",\"age\":\"Edat\",\"country\":\"Espanya\",\"elderly\":\"Majors\",\"elderly_info\":\"El %{percent} de la poblaci\u00F3 t\u00E9 m\u00E9s de %{limit} anys\",\"mean\":\"Edat mitja: %{age} anys\",\"median\":\"Edat mitjana: %{age} anys\",\"men\":\"Homes\",\"mode\":\"Edat m\u00E9s com\u00FA: %{age} anys\",\"unemployed\":\"Aturada\",\"women\":\"Dones\",\"youth\":\"Menors\",\"youth_info\":\"El %{percent} de la poblaci\u00F3 t\u00E9 menys de %{limit} anys\"},\"rent_distribution\":{\"gross_income\":\"Renda bruta\",\"inhabitants\":\"Habitants\",\"million\":\"mili\u00F3\",\"thousand\":\"mil\",\"title\":\"Riquesa i poblaci\u00F3 a la prov\u00EDncia\"},\"unemployment_age\":{\"between_25_44\":\"Entre 25 i 44\",\"less_25\":\"Menors de 25\",\"more_44\":\"M\u00E9s de 44\",\"title\":\"L\\'atur segons l\\'edat\"},\"unemployment_rate\":{\"country\":\"Espanya\",\"title\":\"Comparaci\u00F3 de la taxa d\\'atur\"},\"unemployment_sex\":{\"men\":\"Homes\",\"title\":\"L\\'atur segons el sexe\",\"women\":\"Dones\"}},\"inhabitants\":\"hab\",\"intro\":\"Coneix %{place} a partir de les principals xifres: la poblaci\u00F3, l\\'ocupaci\u00F3 i l\\'economia.\",\"layouts\":{\"application\":{\"observatory\":\"Observatori\"},\"menu_subsections\":{\"banner_map\":\"Un visor geogr\u00E0fic per explorar l\\'estructura demogr\u00E0fica de %{place}\",\"demographic_observatory\":\"Observatori demogr\u00E0fic\",\"economia\":\"Economia\",\"empleo\":\"Ocupaci\u00F3\",\"poblacion\":\"Poblaci\u00F3\"}}},\"gobierto_people\":{\"departments\":{\"index\":{\"description\":\"Qualsevol organitzaci\u00F3 que es reuneix amb un alt c\u00E0rrec ha de registrar-se com a grup d\\'inter\u00E8s, i es crea un registre de les trobades. \\\\u003ca href=\\\\\"https://web.gencat.cat/es/tramits/tramits-temes/registre-grups-interes\\\\\"\\\\u003eM\u00E9s informaci\u00F3 sobre la normativa de grups d\\'inter\u00E8s\\\\u003c/a\\\\u003e. Exploreu les organitzacions (empreses, fundacions, associacions...) que es reuneixen amb alts c\u00E0rrecs de la Generalitat.\",\"events\":\"Reunions registrades\",\"events_by_department\":\"Reunions per departaments\",\"explore_departments\":\"Exploreu els departaments i els seus alts c\u00E0rrecs\",\"explore_people\":\"Consulteu les agendes dels alts c\u00E0rrecs\",\"people_events\":\"Alts c\u00E0rrecs amb m\u00E9s reunions en departaments\",\"people_with_events\":\"Alts c\u00E0rrecs amb reunions registrades\",\"punchcard_title\":\"Reunions per departament i mes\"},\"show\":{\"interest_groups_box_subtitle\":\"amb reunions en el per\u00EDode\",\"interest_groups_box_title\":\"Grups d\\'inter\u00E8s\",\"interest_groups_box_title_single\":\"Grup d\\'inter\u00E8s\",\"interest_groups_rowchart_title\":\"Grups d\\'inter\u00E8s amb m\u00E9s reunions amb aquest departament\",\"interest_groups_with_events\":\"Grups d\\'inter\u00E8s que s\\'han reunit amb aquest departament\",\"map_title\":\"On viatgen els alts carr\u00E8cs?\",\"meetings_box_subtitle\":\"amb grups d\\'inter\u00E8s\",\"meetings_box_title\":\"Reunions registrades\",\"meetings_box_title_single\":\"Reuni\u00F3 registrada\",\"people_box_subtitle\":\"amb reunions registrades\",\"people_box_title\":\"Alts c\u00E0rrecs d\\'aquest departament\",\"people_box_title_single\":\"Alt c\u00E0rrec d\\'aquest departament\",\"people_rowchart_title\":\"Alts c\u00E0rrec d\\'aquest departament amb m\u00E9s reunions\",\"people_with_events\":\"Alts c\u00E0rrecs d\\'aquest departament amb reunions registrades\",\"punchcard_title\":\"Reunions per alt c\u00E0rrec i mes\"}},\"events\":{\"gobierto_people_person_post_published\":\"Actualitzaci\u00F3 del blog: %{subject_name}\",\"gobierto_people_person_post_updated\":\"Actualitzaci\u00F3 del post: %{subject_name}\",\"gobierto_people_person_published\":\"Creada nova persona: %{subject_name}\",\"gobierto_people_person_statement_published\":\"Publicada la declaraci\u00F3: %{subject_name}\",\"gobierto_people_person_statement_updated\":\"Actualitzada la declaraci\u00F3: %{subject_name}\",\"gobierto_people_person_updated\":\"Actualitzaci\u00F3 de la informaci\u00F3 personal\"},\"exports\":{\"index\":{\"events\":{\"description\":\"Llistat dels esdeveniments (passats i futurs) amb t\u00EDtol i descripci\u00F3, assistents, ubicaci\u00F3...\",\"title\":\"Agendes\"},\"people\":{\"description\":\"Llistat dels c\u00E0rrecs, amb les seves dades de contacte, biografia, titulacions, etc.\",\"title\":\"C\u00E0rrecs\"},\"posts\":{\"description\":\"\u00DAltimes entrades del conjunt dels blogs\",\"title\":\"Blogs\"},\"statements\":{\"description\":\"Llistat de les declaracions de b\u00E9ns i activitats i tots els seus elements\",\"title\":\"Declaracions de b\u00E9ns i activitats\"}}},\"gifts\":{\"coc\":\"El Codi de conducta regula quins obsequis es poden rebre.\",\"description\":\"Els alts c\u00E0rrecs han d\u2019abstenir-se d\\'acceptar regals i donacions de particulars i d\\'entitats p\u00FAbliques o privades a excepci\u00F3 feta de les mostres no venals de cortesia i objectes commemoratius, oficials o protocol\u00B7laris que li puguin ser lliurats per ra\u00F3 del seu c\u00E0rrec.\",\"last\":\"Darrers obsequis\",\"none\":\"No s\\'han registrat obsequis en aquest per\u00EDode\",\"title\":\"Obsequis\"},\"interest_groups\":{\"index\":{\"description\":\"Qualsevol organitzaci\u00F3 que es reuneix amb un alt c\u00E0rrec ha de registrar-se com a grup d\\'inter\u00E8s, i es crea un registre de les trobades. \\\\u003ca href=\\\\\"https://web.gencat.cat/es/tramits/tramits-temes/registre-grups-interes\\\\\"\\\\u003eM\u00E9s informaci\u00F3 sobre la normativa de grups d\\'inter\u00E8s\\\\u003c/a\\\\u003e. Exploreu les organitzacions (empreses, fundacions, associacions...) que es reuneixen amb alts c\u00E0rrecs de la Generalitat.\",\"interest_groups\":\"Grups d\\'inter\u00E8s inscrits\",\"no_data\":\"No hi ha dades per a les dates seleccionades\",\"rowchart_title\":\"Grups d\\'inter\u00E8s amb m\u00E9s reunions\",\"title\":\"Grups d\\'inter\u00E8s\"},\"show\":{\"event\":\"Reuni\u00F3 registrada\",\"events\":\"Reunions registrades\",\"events_by_department\":\"Amb quins departaments es reuneix aquest grup\",\"events_by_person\":\"Alts c\u00E0rrecs amb els quals s\\'ha reunit aquest grup\",\"explore_departments\":\"Exploreu els departaments i els seus alts c\u00E0rrecs\",\"explore_people\":\"Consulteu les agendes dels alts c\u00E0rrecs\",\"people_with_events\":\"El nombre d\\'alts c\u00E0rrecs amb els quals s\\'ha reunit aquest grup\",\"punchcard_title\":\"Reunions per alt c\u00E0rrec i mes\",\"status\":\"Situaci\u00F3 d\\'inscripci\u00F3 al registre de grups d\\'inter\u00E8s: %{status}\"}},\"invitations\":{\"coc\":\"El Codi de conducta regula quines invitacions es poden acceptar.\",\"description\":\"Els alts c\u00E0rrecs han d\u2019acceptar nom\u00E9s el pagament de viatges, despla\u00E7aments i allotjaments per part d\\'altres administracions p\u00FAbliques o d\\'entitats p\u00FAbliques dependents d\\'aquestes, universitats o entitats sense \u00E0nim de lucre, quan hagi d\\'assistir convidat oficialment per ra\u00F3 del c\u00E0rrec a una activitat relacionada amb les seves responsabilitats.\",\"last\":\"Darreres invitacions\",\"none\":\"No s\\'han registrat invitacions en aquest per\u00EDode\",\"title\":\"Invitacions\"},\"layouts\":{\"application\":{\"title\":\"Alts c\u00E0rrecs i agendes\"},\"departments\":{\"no_departments_within_dates\":\"No hi ha cap departament per aquestes dates\"},\"menu_subsections\":{\"agendas\":\"Agendes\",\"blogs\":\"Blogs\",\"departments\":\"Departaments\",\"gifts\":\"Obsequis\",\"interest_groups\":\"Grups d\\'inter\u00E8s\",\"invitations\":\"Invitacions\",\"people\":\"C\u00E0rrecs\",\"statements\":\"Declaracions\",\"trips\":\"Viatges\"}},\"people\":{\"contact_methods\":{\"send_email\":\"Envia un correu-e\"},\"gifts\":{\"index\":{\"gifts\":\"Obsequis\",\"no_gifts\":\"No hi ha obsequis en les dates seleccionades\",\"title\":\"Obsequis rebuts per %{person_name}\"}},\"google_calendar\":{\"authorization\":{\"new\":{\"success\":\"Configuraci\u00F3 guardada correctament. Una \u00FAltima cosa, tria quins calendirs vols publicar autom\u00E0ticament a la teva agenda\"}},\"calendars\":{\"edit\":{\"explain\":\"Tria quins calendaris vols publicar autom\u00E0ticament a la teva agenda\",\"save\":\"Guardar\",\"title\":\"Integraci\u00F3 amb Google Calendar\"},\"update\":{\"success\":\"Calendaris guardats correctament.\"}}},\"index\":{\"department_officials\":\"Alts c\u00E0rrecs en %{department_name}\",\"no_people_within_range\":\"No hi ha cap alt c\u00E0rrec per aquestes dates\",\"subscribable_box\":{\"title\":\"Rebeu una alerta al vostre correu-e\"},\"title\":\"Organigrama de %{site_name}\"},\"invitations\":{\"index\":{\"invitations\":\"Invitacions\",\"no_invitations\":\"No hi ha invitacions en les dates seleccionades\",\"title\":\"Invitacions rebudes per %{person_name}\"}},\"latest_activity\":{\"no_activity\":\"Aquest perfil encara no ha registrat cap activitat.\",\"title\":\"Darrera activitat\"},\"navigation\":{\"agenda\":\"Agenda\",\"bio\":\"Biografia i CV\",\"blog\":\"Blog\",\"gift_received\":\"obsequi rebut\",\"gifts\":\"Obsequis i regals\",\"gifts_received\":\"obsequis rebuts\",\"interest_group\":\"Grup d\\'inter\u00E8s\",\"interest_groups\":\"Grups d\\'inter\u00E8s\",\"invitation\":\"invitaci\u00F3\",\"invitations\":\"invitacions\",\"meeting_with\":\"reuni\u00F3 amb\",\"meetings_with\":\"reunions amb\",\"statements\":\"B\u00E9ns i activitats\",\"trip_made\":\"viatge realitzat\",\"trips\":\"Viatges\",\"trips_made\":\"viatges realitzats\"},\"people_filter\":{\"organigram\":\"Organigrama de %{name}\",\"political_groups\":\"Grups pol\u00EDtics de %{name}\"},\"person\":{\"picture\":\"Foto de %{name}\"},\"person_bio\":{\"show\":{\"download\":\"Descarregar CV\",\"subtitle\":\"Biografia i CV\",\"title\":\"Perfil de %{person_name}\"}},\"person_events\":{\"index\":{\"agenda\":\"Agenda\",\"no_events\":\"No hi ha reunions en les dates seleccionades\",\"past_events\":\"Esdeveniments passats\",\"title\":\"Agenda de %{person_name}\",\"upcoming_events\":\"Agenda\"},\"show\":{\"event_data\":{\"event_attachments\":\"Documents\",\"event_attendees\":\"Assistents\",\"event_locations\":\"Lloc\"},\"title\":\"Agenda de %{person_name}\"}},\"person_messages\":{\"create\":{\"error\":\"No s\\'ha pogut enviar el missatge\",\"success\":\"Missatge enviat correctamente\"},\"new\":{\"placeholders\":{\"body\":\"Escriu un missatge\",\"email\":\"El teu correu-e\",\"name\":\"El teu nom\"},\"submit\":\"Enviar\",\"title\":\"Envia un missatge a %{name}\"}},\"person_post_tags\":{\"show\":{\"filtering_by_tag\":\"Filtrant per \\\\\"%{tag}\\\\\"\",\"go_back\":\"Tornar al blog\"}},\"person_posts\":{\"index\":{\"no_posts\":\"Encara no hi ha posts publicats.\",\"title\":\"El blog de %{person_name}, %{person_charge}\"},\"show\":{\"title\":\"El blog de %{person_name}, %{person_charge}\"}},\"person_statements\":{\"index\":{\"no_statements\":\"Encara no hi ha declaracions publicades per a aquesta persona.\",\"title\":\"B\u00E9ns i activitats de %{person_name}\"},\"show\":{\"download\":\"Descarregar declaraci\u00F3 (%{file_size})\",\"title\":\"B\u00E9ns i activitats de %{person_name}\",\"view_previous\":\"Veure anteriors\"}},\"show\":{\"events_section_title\":\"Darreres reunions\",\"gifts_section_title\":\"Darrers obsequis\",\"invitations_section_title\":\"Darreres invitacions\",\"no_data\":\"No hi ha dades en les dates seleccionades\",\"party\":{\"government\":\"Equip de govern\",\"opposition\":\"Oposici\u00F3\"},\"trips_section_title\":\"Darrers viatges\"},\"subscription_button\":{\"cancel\":\"Cancel\u00B7lar\",\"follow\":\"Seguir\"},\"trips\":{\"index\":{\"no_trips\":\"No hi ha viatges en les dates seleccionades\",\"title\":\"Viatges realitzats per %{person_name}\",\"trips\":\"Viatges\"},\"trip\":{\"accomodation_expenses\":\"Hotels i allotjament\",\"by\":\"per\",\"company\":\"Comitiva\",\"expenses\":\"Despeses\",\"food_expenses\":\"Dietes i manutenci\u00F3\",\"in\":\"a\",\"meeting_name\":{\"one\":\"reuni\u00F3\",\"other\":\"reunions\",\"person_name\":{\"one\":\"persona\",\"other\":\"persones\"}},\"other_expenses\":\"Altres despeses\",\"person_name\":{\"one\":\"persona\",\"other\":\"persones\"},\"total_expenses\":\"Total despeses\",\"transport_expenses\":\"Transport\"}},\"upcoming_events\":{\"no_upcoming_events\":\"No hi ha esdeveniments programats en aquesta agenda.\",\"title\":\"Agenda\",\"view_all\":\"Veure\\'ls tots\"}},\"people_filter\":{\"all\":\"Tots\",\"categories\":{\"executive\":\"Directius\"},\"parties\":{\"government\":\"Equip de Govern\",\"opposition\":\"Oposici\u00F3\"},\"political_groups\":{\"title\":\"Grups pol\u00EDtics\"}},\"person_events\":{\"index\":{\"agenda_switcher\":{\"subtitle\":\"Filtrar per membres de la comunitat\",\"title\":\"Consulteu l\\'agenda de...\"},\"displaying_events_of\":\"Mostrant esdeveniments del %{date}\",\"go_back\":\"Tornar\",\"no_events\":\"No hi ha esdeveniments futurs ni passats.\",\"no_past_events\":\"Filtrar per membres de la comunitat\",\"no_upcoming_events\":\"Consulteu l\\'agenda de...\",\"past_events\":\"Esdeveniments passats\",\"subscribable_box\":{\"title\":\"Rebeu un resum de les agendes dels vostres representants\"},\"title\":\"Agendes dels membres de %{site_name}\",\"upcoming_events\":\"Agenda\"},\"person_events_filter\":{\"agenda\":\"Agenda dels membres del %{name}\"}},\"person_gifts\":{\"index\":{\"error\":\"No hem trobat la p\u00E0gina que busqueu\"}},\"person_mailer\":{\"new_message\":{\"hi\":\"Hola\",\"new_message\":\"Has rebut un nou missatge de %{name} (%{reply_to})\",\"subject\":\"Has rebut un nou missatge des de %{name}\"}},\"person_post_tags\":{\"show\":{\"filtering_by_tag\":\"Filtrant per \\\\\"%{tag}\\\\\"\",\"go_back\":\"Tornar\"}},\"person_posts\":{\"index\":{\"subscribable_box\":{\"title\":\"Rebeu una alerta al vostre correu-e\"},\"switcher\":{\"subtitle\":\"Filtrar per membres de la comunitat\",\"title\":\"Consulteu els blogs de...\"},\"title\":\"Blogs\"},\"person_post_excerpt\":{\"continue\":\"Seguir llegint\"}},\"person_statements\":{\"index\":{\"subscribable_box\":{\"title\":\"Rebeu una alerta al vostre correu-e\"},\"switcher\":{\"subtitle\":\"Filtrar per membres de la comunitat\",\"title\":\"Consulteu les declaracions de...\"},\"title\":\"Declaracions\"}},\"person_trips\":{\"index\":{\"error\":\"No hem trobat la p\u00E0gina que busqueu\"}},\"shared\":{\"app_breadcrumb_title\":\"Visor de l\u2019activitat directiva\",\"app_title\":\"Activitat directiva p\u00FAblica derivada del Codi de conducta\",\"check_it_out\":\"Consulteu el text del Codi de conducta\",\"datepicker\":{\"1m\":\"Darrer mes\",\"1y\":\"Darrer any\",\"3m\":\"Darrers tres mesos\",\"all\":\"Tot\",\"range\":\"Rang personalitzat\",\"today\":\"Avui\"},\"datepicker_fixed\":\"Data corresponent al per\u00EDode\",\"destination\":\"destinaci\u00F3\",\"destinations\":\"destinacions\",\"displacement\":\"despla\u00E7ament\",\"displacements\":\"despla\u00E7aments\",\"from\":\"de\",\"locales\":{\"locale\":\"Idioma\",\"page_locale\":\"Idioma de la p\u00E0gina\",\"select_locale\":\"Selecciona idioma\"},\"meetings_punchcard\":{\"tooltip\":\"reunions\",\"tooltip_single\":\"reuni\u00F3\"},\"meetings_rowchart\":{\"tooltip\":\"reunions\",\"tooltip_single\":\"reuni\u00F3\"},\"noresults\":\"Sense resultats\",\"open_data_footer\":{\"gifts\":\"Obsequis\",\"invitations\":\"Invitacions\",\"meetings\":\"Reunions\",\"title\":\"Accediu a les dades al Portal de dades obertes\",\"trips\":\"Viatges\"},\"table_item\":{\"view_details\":\"Veure detalls\"},\"to\":\"per a\",\"view_all\":\"Vegeu-ne m\u00E9s\",\"view_all_f\":\"Vegeu-ne m\u00E9s\",\"view_charges\":\"Vegeu tots els c\u00E0rrecs\",\"view_details\":\"Veure detalls\",\"view_gifts\":\"Veure tots els obsequis al Portal de dades oberts\",\"view_invitations\":\"Veure totes les invitacions al Portal de dades oberts\",\"view_officials\":\"Veure alts c\u00E0rrecs\"},\"welcome\":{\"index\":{\"departments\":\"Departaments\",\"departments_extra\":\"es mostren els departaments que existeixen o han existit en funci\u00F3 del per\u00EDode seleccionat\",\"departments_rowchart_title\":\"Departaments amb m\u00E9s reunions\",\"description_1\":\"El visor mostra les reunions dels alts c\u00E0rrecs de l\u2019administraci\u00F3 de la Generalitat amb els grups d\u2019inter\u00E8s en el per\u00EDode temporal que seleccioneu. Tamb\u00E9 hi trobareu els regals i invitacions permesos pel Codi de conducta, que obliga els alts c\u00E0rrecs a fer p\u00FAblica aquesta informaci\u00F3. Aix\u00ED mateix, el visor permet consultar els viatges a l\u2019estranger del president, consellers, assessors i alts c\u00E0rrecs en l\u2019exercici de les seves funcions.\",\"description_2_html\":\"Respecte de l\\'informaci\u00F3 dels alts c\u00E0rrecs, es mostren els c\u00E0rrecs que ocupen o han ocupat en el per\u00EDode temporal seleccionat.\",\"events_summary\":{\"no_events\":\"No hi ha esdeveniments\",\"no_upcoming_events\":\"No hi ha esdeveniments futurs. Mireu els esdeveniments passats.\",\"past_events\":\"Esdeveniments passats\",\"upcoming_events\":\"Propers esdeveniments\",\"view_all\":\"Veure\\'ls tots\"},\"gifts\":\"Obsequis i regals\",\"interest_groups_box_subtitle\":\"amb reunions en el per\u00EDode\",\"interest_groups_box_title\":\"Grups d\\'inter\u00E8s\",\"interest_groups_box_title_single\":\"Grup d\\'inter\u00E8s\",\"interest_groups_rowchart_title\":\"Grups d\\'inter\u00E8s amb m\u00E9s reunions\",\"map_title\":\"On viatgen els alts carr\u00E8cs?\",\"meetings_box_subtitle\":\"amb grups d\\'inter\u00E8s\",\"meetings_box_title\":\"Reunions registrades\",\"meetings_box_title_single\":\"Reuni\u00F3 registrada\",\"people_box_subtitle\":\"amb activitat registrada\",\"people_box_title\":\"Alts c\u00E0rrecs\",\"people_box_title_single\":\"Alt c\u00E0rrec\",\"people_rowchart_title\":\"Alts c\u00E0rrecs amb m\u00E9s reunions\",\"people_summary\":{\"no_people\":\"No hi ha persones\",\"title\":\"Organigrama de %{site_name}\",\"view_all\":\"Veure\\'ls tots\"},\"posts_summary\":{\"title\":\"Blogs\",\"view_all\":\"Veure\\'ls tots\"},\"punchcard_title\":\"Reunions per alt c\u00E0rrec i mes\",\"search\":\"Cercar\",\"search_placeholder\":\"Cerca un c\u00E0rrec\",\"statements\":\"Declaracions de b\u00E9ns i activitats\",\"subscribable_box\":{\"title\":\"Rebeu un resum setmanal de l\\'agenda dels vostres representants\"},\"title\":\"Agendes\",\"trips\":\"Viatges i despla\u00E7aments\"}}},\"gobierto_plans\":{\"custom_fields_plugins\":{\"budgets\":{\"detail_text\":\"veure detall en Pressupostos\",\"title\":\"Pressupost\"}},\"events\":{\"gobierto_plans_plan_created\":\"Pla creat\",\"gobierto_plans_plan_data_csv_imported\":\"Dades de pla importats des de fitxer CSV\",\"gobierto_plans_plan_type_created\":\"Tipus de pla creat\",\"gobierto_plans_plan_type_updated\":\"Tipus de pla actualitzat\",\"gobierto_plans_plan_updated\":\"Pla actualitzat\",\"gobierto_plans_progresses_updated\":\"Progressos de projectes actualitzats\",\"gobierto_plans_project_created\":\"Projecte creat\",\"gobierto_plans_project_destroyed\":\"Projecte eliminat del pla\",\"gobierto_plans_project_updated\":\"Projecte actualitzat\"},\"layouts\":{\"application\":{\"plans\":\"Plans\"}},\"plan_types\":{\"sdg\":{\"header\":{\"sdgs_description\":\"Els Objectius de Desenvolupament Sostenible s\u00F3n un conjunt d\\'objectius mundials relacionats amb els desafiaments ambientals, pol\u00EDtics i econ\u00F2mics amb qu\u00E8 s\\'enfronta el nostre m\u00F3n. Aqu\u00ED pots veure com el Pla d\\'Actuaci\u00F3 Municipal connecta amb els ODS.\",\"sdgs_title\":\"Objectius de Desenvolupament Sostenible\"},\"projects\":{\"sdg_projects_empty\":\"No hi ha %{projects_term} de el pla relacionats amb aquest ODS\",\"sdg_projects_title\":\"%{projects_term} del pla relacionades amb aquest ODS\"}},\"show\":{\"category\":\"Categoria\",\"customize_columns\":\"Personalitzeu columnes\",\"dashboards\":\"Dashboards\",\"desc\":\"Descripci\u00F3\",\"ends\":\"Fi\",\"global_execution\":\"Estat d\\'execuci\u00F3 global\",\"latest_update_html\":\"\\\\u003cstrong\\\\u003eDarrera actualitzaci\u00F3:\\\\u003c/strong\\\\u003e %{date}\",\"loading\":\"Carregant...\",\"percent_out_of_total\":\"% sobre total\",\"plan\":\"Plan\",\"progress\":\"Progr\u00E9s\",\"read_less\":\"Llegiu menys\",\"read_more\":\"Llegiu m\u00E9s\",\"starts\":\"Inici\",\"status\":\"Estat\",\"view_by\":\"Veure per\"}}},\"gobierto_visualizations\":{\"layouts\":{\"application\":{\"gobierto_visualizations\":{\"contracts\":\"Contractes i licitacions\",\"costs\":\"Costos\",\"debts\":\"Deute\",\"odss\":\"ODS\",\"subsidies\":\"Subvencions\"}}},\"shared\":{\"download_data\":\"Descarregueu les dades en format reutilitzable\",\"loading\":\"Carregant dades...\"},\"visualizations\":{\"categories\":{\"agriculture\":\"Serveis agr\u00EDcoles i forestals\",\"architecture\":\"Arquitectura i enginyeria\",\"audiovisual\":\"Audiovisual\",\"catering\":\"Hostaleria i restauraci\u00F3\",\"construction\":\"Construcci\u00F3 i manteniment\",\"culture\":\"Cultura i esport\",\"education\":\"Ensenyament i formaci\u00F3\",\"electrical\":\"Equips el\u00E8ctrics i d\\'il\u00B7luminaci\u00F3\",\"energy\":\"Energia\",\"environment\":\"Medi ambient\",\"finance\":\"Serveis financers i assegurances\",\"furniture\":\"Mobiliari\",\"health\":\"Salut\",\"industry\":\"Ind\u00FAstria i maquin\u00E0ria\",\"it\":\"Tecnologia de la informaci\u00F3\",\"legal\":\"Jur\u00EDdic, comptabilitat, m\u00E0rqueting ...\",\"maintenance\":\"Reparaci\u00F3 i manteniment\",\"other\":\"Altres\",\"print\":\"Impressi\u00F3 i material d\\'oficina\",\"public_services\":\"Serveis p\u00FAblics\",\"real_estate\":\"Immobiliari\",\"security\":\"Seguretat\",\"social_services\":\"Serveis socials\",\"software\":\"Consultoria i desenvolupament de programari, equips i llic\u00E8ncies\",\"telecom\":\"Telecomunicacions i correus\",\"textile\":\"T\u00E8xtil\",\"transportation\":\"Transport\"},\"contract_statuses\":{\"abandoned\":\"Desistiment\",\"awarded\":\"Adjudicat\",\"finally_awarded\":\"Finalment adjudicat\",\"finally_void\":\"Desert\",\"formalized\":\"Formalitzat\",\"highest_rated\":\"Millor valorat\",\"provisionally_awarded\":\"Provisionalment adjudicat\",\"provisionally_void\":\"Provisionalment desert\",\"revoked\":\"Revocat\",\"void\":\"Desert\"},\"contract_types\":{\"construction\":\"Obres\",\"other\":\"Altres\",\"patrimonial\":\"Patrimonial\",\"private_contract\":\"Privat\",\"public_private_collaboration\":\"Col\u00B7laboraci\u00F3 entre el sector p\u00FAblic i sector privat\",\"public_services_management\":\"Gesti\u00F3 de Serveis P\u00FAblics\",\"public_works\":\"Concessi\u00F3 d\\'Obres p\u00FAbliques\",\"services\":\"Serveis\",\"special_administrative\":\"Administratiu especial\",\"supplies\":\"Subministraments\"},\"contracts\":{\"amount_by_type_of_process\":\"Import per tipus de procediment\",\"amount_distribution\":\"Distribuci\u00F3 per imports\",\"assignee\":\"Adjudicatari\",\"categories\":\"Categories\",\"contract\":\"Contracte\",\"contract_amount\":\"Imp. adjudicaci\u00F3\",\"contract_type\":\"Tipus de contracte\",\"contractor\":\"Contractor\",\"contracts\":\"Contractes\",\"contracts_assigned_to\":\"Contractes adjudicats a\",\"contracts_show\":{\"assignee_description\":\"Empresa que ha guanyat el contracte (Adjudicatari)\",\"assignees_description\":\"Empreses que han guanyat el contracte (Adjudicataris)\",\"awarding_entity\":\"Entitat adjudicadora\",\"batch\":\"Lot\",\"bid_description\":\"Pressupost base de licitaci\u00F3 sense impostos\",\"bidders_description\":\"Numero d\\'empreses que s\\'han presentat al proc\u00E9s (Licitadors)\",\"contract_amount\":\"Import d\\'adjudicaci\u00F3\",\"entity\":\"Entitat\",\"estimated_value\":\"Valor estimat\",\"external_source\":\"Font\",\"formalization\":\"Formalitzaci\u00F3\",\"process\":\"Procediment\",\"question_description\":\"Quin % del pressupost suposa aquest contracte?\",\"tender\":\"Licitaci\u00F3\",\"type\":\"Tipus\"},\"date\":\"Data\",\"dates\":\"Dates\",\"description\":\"Visualitzaci\u00F3 i an\u00E0lisi dels contractes adjudicats i les licitacions del %{entity_name}\",\"entities\":\"Entitats\",\"final_amount_no_taxes\":\"Import\",\"formalization_date\":\"Data de formalitzaci\u00F3\",\"fromto\":\"De a N\u00BA Contr.\",\"main_assignees\":\"Principals adjudicataris\",\"more\":\"M\u00E9s de\",\"nav\":{\"contracts\":\"Contractes\",\"summary\":\"Resum\",\"tenders\":\"Licitacions\"},\"process_type\":\"Tipus de procediment\",\"search_placeholder\":\"Cerqueu per adjudicatari o per t\u00EDtol del contracte\",\"status\":\"Estat\",\"submission_date\":\"Data\",\"summary\":{\"contracts\":\"Contractes adjudicats\",\"contracts_for\":\"contractes per import de\",\"mean_amount\":\"Import mig\",\"median_amount\":\"Mediana dels imports\",\"tenders\":\"Licitacions\",\"tenders_for\":\"licitacions per un import de\",\"tip_1\":\"El %{strong1} dels contractes s\u00F3n menors de %{strong2}\",\"tip_2\":\"El major contracte suposa un %{strong} de tota la despesa en contractes\",\"tip_3\":\"El %{strong} de contractes concentren el 50% de tota la despesa\"},\"tender_amount\":\"Imp. licitaci\u00F3\",\"tender_date\":\"Data de licitaci\u00F3\",\"title\":\"Contractes i licitacions\"},\"costs\":{\"activities\":\"activitats\",\"cost_direct\":\"Cost directe\",\"cost_indirect\":\"Cost indirecte\",\"cost_inhabitant\":\"Cost / habitant\",\"cost_per_inhabitant\":\"Cost per habitant\",\"coverage\":\"Cobertura\",\"description\":\"L\\'%{entity_name} presta serveis als seus ciutadans a partir de les seves compet\u00E8ncies. Aquesta prestaci\u00F3 de serveis suposa un cost que es cobreix amb els ingressos que disposa l\u2019Ajuntament, que s\u00F3n els derivats del propi servei a prestar o b\u00E9 de recursos generals dels impostos o subvencions rebudes.\",\"description_2\":\"En aquest apartat es mostren les dades sobre els costos dels serveis i els ingressos necessaris per prestar-los.\",\"description_3\":\"El punt de partida \u00E9s el pressupost municipal, per\u00F2 amb aquesta an\u00E0lisi s\u2019amplia i es concreta el cost real d\u2019un servei ja que podem trobar relacionat el cost indirecte (de suport) necessari per a la prestaci\u00F3 d\u2019un servei.\",\"detail\":\"Detall\",\"distribution\":\"Distribuci\u00F3 de costos per \u00E0rea\",\"home\":\"Inici\",\"income\":\"Ingressos\",\"inhabitants\":\"Habitants\",\"item\":{\"competence\":\"Compet\u00E8ncia\",\"description\":\"Descripci\u00F3\",\"equipments\":\"Equipaments\",\"external_services\":\"Serveis exteriors\",\"goods_and_services\":\"B\u00E9ns i serveis\",\"income_cost\":\"Ingressos - Cost\",\"legal_framework\":\"Marc legal\",\"observation\":\"Observacions\",\"personal_cost\":\"Cost personal\",\"public_tax\":\"Taxa o preus p\u00FAblics\",\"subsidies\":\"Subvencions\",\"total\":\"Total\",\"transference\":\"Transfer\u00E8ncies\",\"types\":\"Tipus\"},\"per_inhabitant\":\"per habitant\",\"see_all\":\"Vegeu-ho tot\",\"title\":\"Costos\",\"tooltips\":{\"cost_direct\":\"Recursos necessaris per la prestaci\u00F3 d\u2019un servei o activitat finalista i que es relacionen directament.\",\"cost_indirect\":\"Recursos per la prestaci\u00F3 de serveis no finalistes i que s\u00F3n de suport necessari per a la realitzaci\u00F3 de serveis i activitats finalistes.\",\"cost_per_habitant\":\"Cost total dividit pel nombre d \u0301habitants.\",\"cost_total\":\"Suma del cost directe i cost indirecte.\",\"coverage\":\"Grau de cobertura dels ingressos directament relacionats amb el cost total de l\u2019activitat o servei.\",\"income\":\"Ingressos directament relacionats amb la prestaci\u00F3 del servei, ja siguin derivats de l\u2019aplicaci\u00F3 d\u2019una taxa o preu p\u00FAblic o b\u00E9 d\u2019una subvenci\u00F3.\"},\"tooltips_items\":{\"cost_indirect\":\"Part proporcional del cost de les activitats no finalistes (recursos humans, serveis econ\u00F2mics).\",\"coverage\":\"Mesura (en %) en qu\u00E8 els ingressos directament relacionats amb l\u2019activitat s\u00F3n suficients per cobrir el seu cost.\",\"equipments\":\"Cost proporcional de l\u2019\u00FAs de la infrastuctura necess\u00E0ria per a la prestaci\u00F3 de l\u2019activitat o servei (consums i manteniments dels edificis, vehicles) en funci\u00F3 del seu grau d\u2019utilitzaci\u00F3.\",\"externalServices\":\"Serveis diversos adquirits per l\u2019Ajuntament i prestacions de persones jur\u00EDdiques o f\u00EDsiques no integrades a la plantilla.\",\"goodsServices\":\"Valoraci\u00F3 monet\u00E0ria del consum de material fungible necessari i no emmagatzemable necessari per a la prestaci\u00F3 de l\u2019activitat o servei (subministrament, material d\u2019oficina)\",\"income_cost\":\"Difer\u00E8ncia entre conjunt d\u2019ingressos directament relacionats amb l\u2019activitat i el cost necessari per a la seva prestaci\u00F3. Un saldo negatiu indica la insufici\u00E8ncia de recursos espec\u00EDfics i la necessitat de finan\u00E7ament amb recursos generals de l\u2019Ajuntament.\",\"staff_cost\":\"C\u00F2mput anual de la part dels sous i salaris de les treballadores i treballadors proporcional a la seva dedicaci\u00F3 a l\u2019activitat.\",\"subsidies\":\"Ingressos sense contraprestaci\u00F3 directa per part del beneficiari, destinats a una activitat o a un projecte espec\u00EDfic.\",\"taxes\":\"Contraprestacions econ\u00F2miques rebudes per la prestaci\u00F3 d\u2019un servei o per la utilitzaci\u00F3 privativa o aprofitament especial del domini p\u00FAblic.\",\"transferences\":\"Aportacions de recursos financers per part de l\u2019Ajuntament en concepte de subvenci\u00F3 pr\u00E8viament concedida.\"},\"total\":\"Total\",\"total_cost\":\"Cost total\"},\"debts\":{\"breakdown_debt\":\"Desglossament del deute\",\"creditor\":\"Per creditor\",\"date_debt\":\"Dades de deute a 31 de desembre de 2025.\",\"debtor\":\"Per deutor\",\"description\":\"EL deute financer i d\u2019altre a llarg termini del Grup Ajuntament englova  el deute de tots els seus ens dependents (Societats Mercantils, EPE\u2019s, Fundacio\u00F3ns, Consorcis).\",\"evolution_debt\":\"Evoluci\u00F3 del deute\",\"millions\":\"La unitat de les xifres d\\'aquest gr\u00E0fic \u00E9s milions d\\'euros.\",\"title\":\"Deute\",\"total_debt\":\"Deute total\"},\"odss\":{\"amount\":\"Import\",\"assigned\":\"Alineat\",\"description_html\":\"\\\\u003cp\\\\u003eDes que l\u2019any 2015, l\u2019ONU) va aprovar l\u2019Agenda 2030, integrant els 17 Objectius de Desenvolupament Sostenible (ODS), i va establir una visi\u00F3 transformadora cap a la sostenibilitat econ\u00F2mica, social i ambiental, aquest Ajuntament ha coadjuvat en obrir un nou cam\u00ED per millorar la vida de totes i tots, sense deixar ning\u00FA enrere.\\\\u003c/p\\\\u003e \\\\u003cp\\\\u003e\u00C9s per aix\u00F2, que despr\u00E9s de presentar el Pla Estrat\u00E8gic Municipal 2023-2027 alineat amb els ODS, competeix l\u2019alineaci\u00F3 del pressupost municipal amb l\u2019Agenda 2030.\\\\u003c/p\\\\u003e \\\\u003cp\\\\u003eEl visor del pressupost  permet una millor avaluaci\u00F3 de l\\'adequaci\u00F3 dels recursos utilitzats i les prioritats pol\u00EDtiques, i contribueix a dirigir els esfor\u00E7os cap a les \u00E0rees on es necessita un major enfocament.\\\\u003c/p\\\\u003e \\\\u003cp\\\\u003eAquesta eina es planteja amb l\\'objectiu d\\'oferir a la ciutadania una visi\u00F3 integral del grau d\u2019alineament de les despeses municipals d\u2019enguany amb la consecuci\u00F3 dels ODS.\\\\u003c/p\\\\u003e\",\"functional_code\":\"C\u00F3digo programa\",\"label_title_budgets_ods\":\"Distribuci\u00F3 de partides per ODS\",\"label_title_ods\":\"Distribuci\u00F3 de despesa per Objectius de Desenvolupament Sostenible\",\"name\":\"Nom\",\"ods_distribution\":\"Distribuci\u00F3 ODS\",\"title\":\"Pressupost vigent alineat amb els Objectius de Desenvolupament Sostenible (ODS)\",\"unassigned\":\"Sense alinear\",\"updated_date\":\"Dades actualitzades el 18 de mar\u00E7 de 2025\"},\"process_types\":{\"based_on_agreement\":\"Basat en Acord Marc\",\"competitive_dialogue\":\"Di\u00E0leg competitiu\",\"dynamic_acquisition\":\"Basat en sistema din\u00E0mic d\\'adquisici\u00F3\",\"innovation\":\"Associaci\u00F3 per a la innovaci\u00F3\",\"innovation_derived\":\"Derivat d\\'associaci\u00F3 per a la innovaci\u00F3\",\"internal_rules\":\"Normes Internes\",\"minor_contract\":\"Contracte menor\",\"negotiated\":\"Licitaci\u00F3 amb negociaci\u00F3\",\"negotiated_with_publicity\":\"Negociat amb publicitat\",\"negotiated_without_publicity\":\"Negociat sense publicitat\",\"open\":\"Obert\",\"open_simplified\":\"Obert simplificat\",\"others\":\"Altres\",\"project_competition\":\"Concurs de projectes\",\"restricted\":\"Restringit\"},\"subsidies\":{\"amount\":\"Import\",\"amount_distribution\":\"Distribuci\u00F3 per imports\",\"beneficiary\":\"beneficiari\",\"call\":\"Convocat\u00F2ria\",\"category\":\"Categoria\",\"date\":\"Data\",\"dates\":\"Dates\",\"description\":\"Visualitzaci\u00F3 i an\u00E0lisi de les subvencions concedides per %{entity_name}\",\"details\":\"D\\'acord amb el que preveu l\\'article 7.8 del Reial Decret 130/2019, la informaci\u00F3 sobre concessions romandr\u00E0 publicada durant els quatre anys naturals seg\u00FCents a l\\'any en qu\u00E8 es va concedir la subvenci\u00F3 en el cas de persones jur\u00EDdiques, i en el cas de persones f\u00EDsiques la publicitat es redueix a l\\'any de concessi\u00F3 i l\\'any seg\u00FCent.\",\"fromto\":\"De a N\u00BA Subv.\",\"main_beneficiaries\":\"Principals beneficiaris\",\"more\":\"M\u00E9s de\",\"nav\":{\"subsidies\":\"Subvencions\",\"summary\":\"Resum\"},\"person\":\"Persona individual\",\"subsidies\":\"Subvencions\",\"subsidies_amount\":\"Imp. Subvencion\",\"subsidies_total\":\"Total Subvencions\",\"summary\":{\"collective_subsidies_for\":\"a col\u00B7lectius per import de\",\"individual_subsidies_for\":\"a particulars per import de\",\"mean_amount\":\"Import mig\",\"median_amount\":\"Mediana dels imports\",\"subsidies\":\"Subvencions\",\"subsidies_for\":\"subvencions per import de\",\"tip_1\":\"El %{strong1} de les subvencions s\u00F3n menors de %{strong2}\",\"tip_2\":\"La major subvenci\u00F3 suposa %{strong} de tota la despesa en subvencions\",\"tip_3\":\"El %{strong} de subvencions concentren el 50% de tota la despesa\"},\"title\":\"Subvencions\"},\"tender_statuses\":{\"awarded\":\"Adjudicat\",\"cancelled\":\"Desistida\",\"evaluation\":\"Avaluaci\u00F3\",\"modified\":\"Anul\u00B7lada\",\"partially_awarded\":\"Parcialment adjudicada\",\"partially_resolved\":\"Parcialment resolta\",\"prior_announcement\":\"Anunci previ\",\"prior_evaluation\":\"Avaluaci\u00F3 pr\u00E8via\",\"provisionally_resolved\":\"Adjudicaci\u00F3 provisional\",\"published\":\"Publicada\",\"resolved\":\"Resolta\"},\"visualizations\":{\"title_beeswarm\":\"Contractes per tipus, volum, mida i data\",\"tooltip_beeswarm\":\"Import d\\'adjudicaci\u00F3\",\"tooltip_treemap\":\"Total contractes\"}}},\"grammatical_particles\":{\"from\":\"de\",\"of\":\"de\",\"of_the\":{\"apostrophized\":\"de l\\'\",\"f\":\"de la\",\"m\":\"del\",\"n\":\"del\"},\"our\":{\"f\":\"nostra\",\"m\":\"nostre\",\"n\":\"nostre\"},\"the\":{\"apostrophized\":\"l\\'\",\"f\":\"la\",\"m\":\"el\",\"n\":\"el\"},\"to\":\"a\",\"to_your\":{\"f\":\"a la teva\",\"m\":\"al teu\",\"n\":\"al teu\"},\"your\":{\"f\":\"teva\",\"m\":\"teu\",\"n\":\"teu\"}},\"helpers\":{\"page_entries_info\":{\"more_pages\":{\"display_entries\":\"Mostrant %{entry_name} \\\\u003cb\\\\u003e%{first}\\\\u0026nbsp;-\\\\u0026nbsp;%{last}\\\\u003c/b\\\\u003e de \\\\u003cb\\\\u003e%{total}\\\\u003c/b\\\\u003e en total\"},\"one_page\":{\"display_entries\":{\"one\":\"Mostrant \\\\u003cb\\\\u003e1\\\\u003c/b\\\\u003e %{entry_name}\",\"other\":\"Mostrant \\\\u003cb\\\\u003e%{count}\\\\u003c/b\\\\u003e %{entry_name}\",\"zero\":\"No hi ha %{entry_name}\"}}},\"select\":{\"prompt\":\"Si us plau tria\"},\"submit\":{\"create\":\"Crear\",\"submit\":\"Desar\",\"update\":\"Actualitzar\"}},\"invisible_captcha\":{\"sentence_for_humans\":\"Si sou hum\u00E0, si us plau, ignoreu aquest camp.\",\"timestamp_error_message\":\"Disculpeu, aix\u00F2 ha anat molt r\u00E0pid. Si us plau, torneu a enviar el formulari.\"},\"issue\":{\"events\":{\"issue_description_translations_changed\":\"Nou tema creat\"}},\"issues\":{\"events\":{\"issues_issue_created\":\"Tema creat\",\"issues_issue_updated\":\"Tema actualitzat\"}},\"layouts\":{\"accept_privacy_policy_signup\":\"En registrar-vos, accepteu la pol\u00EDtica de privacitat.\",\"application\":{\"disclaimer\":\"Aquest web es una demostraci\u00F3 de Gobierto, un programari de transpar\u00E8ncia i participaci\u00F3.\",\"more_information\":\"M\u00E9s informaci\u00F3 a gobierto.es\",\"search\":\"Cerca...\",\"session\":{\"alerts\":\"Les vostres alertes\",\"login\":\"Feu login o registreu-vos\",\"notifications\":\"Notificacions\",\"sign_in\":\"Iniciar sessi\u00F3\",\"sign_out\":\"Tancar sessi\u00F3\",\"title\":\"El vostre compte\"},\"start\":\"Inici\"},\"gobierto_budgets\":{\"application\":{\"about_the_data\":\"Sobre les dades\",\"disclaimer\":\"Aquesta web es una demostraci\u00F3 de Gobierto, software de transpar\u00E8ncia i participaci\u00F3\",\"is_open_source\":\"es software lliure creat per\",\"more_information\":\"M\u00E9s informaci\u00F3 en gobierto.es\",\"session\":{\"admin\":\"Administraci\u00F3\",\"alerts\":\"Les teves alertes\",\"notifications\":\"Notificacions\",\"sign_in\":\"Iniciar sessi\u00F3\",\"sign_out\":\"Tancar sessi\u00F3\",\"title\":\"El teu compte\"}}},\"mailcheck\":{\"suggestion_message\":\"Vols dir\"},\"sandbox\":{\"application\":{\"about_the_data\":\"Sobre les dades\",\"disclaimer\":\"Aquesta web es una demostraci\u00F3 de Gobierto, un programari de transpar\u00E8ncia i participaci\u00F3\",\"is_open_source\":\"es programari lliure creat per\",\"more_information\":\"M\u00E9s informaci\u00F3 en gobierto.es\",\"session\":{\"admin\":\"Administraci\u00F3\",\"alerts\":\"Les teves alertes\",\"notifications\":\"Notificacions\",\"sign_in\":\"Iniciar sessi\u00F3\",\"sign_out\":\"Tancar sessi\u00F3\",\"title\":\"El teu compte\"}}},\"search\":{\"budget_line_item_expense\":\"Partida pressupost\u00E0ria - Despesa\",\"budget_line_item_income\":\"Partida pressupost\u00E0ria - Ingr\u00E9s\",\"dataset_item\":\"Dades\",\"drag_drop_instructions\":\"Arrossegueu i deixeu anar al costat esquerre per a col\u00B7locar aquesta p\u00E0gina al men\u00FA\",\"event_item\":\"Esdeveniment \",\"no_results\":\"La cerca no ha coincidit amb cap p\u00E0gina. Intenteu fer servir termes m\u00E9s generals o comproveu l\\'ortografia.\",\"page_item\":\"P\u00E0gina\",\"person_item\":\"Biografia\",\"person_post_item\":\"Post\",\"person_statement_item\":\"Declaraci\u00F3\",\"plan_project_item\":\"Plan - Actuaci\u00F3\",\"updated\":\"Actualitzat\"}},\"locales\":{\"ca\":\"Catal\u00E0\",\"ca_short\":\"CA\",\"en\":\"Angl\u00E8s\",\"en_short\":\"EN\",\"es\":\"Castell\u00E0\",\"es_short\":\"ES\"},\"number\":{\"currency\":{\"format\":{\"delimiter\":\".\",\"format\":\"%n %u\",\"precision\":2,\"separator\":\",\",\"significant\":false,\"strip_insignificant_zeros\":false,\"unit\":\"\u20AC\"}},\"format\":{\"delimiter\":\".\",\"precision\":3,\"separator\":\",\",\"significant\":false,\"strip_insignificant_zeros\":false},\"human\":{\"decimal_units\":{\"format\":\"%n %u\",\"units\":{\"billion\":\"mil milions\",\"million\":\"mili\u00F3\",\"quadrillion\":\"quadrili\u00F3\",\"thousand\":\"mil\",\"trillion\":\"trili\u00F3\",\"unit\":\"\"}},\"format\":{\"delimiter\":\"\",\"precision\":1,\"significant\":true,\"strip_insignificant_zeros\":true},\"storage_units\":{\"format\":\"%n %u\",\"units\":{\"byte\":{\"one\":\"Byte\",\"other\":\"Bytes\"},\"gb\":\"GB\",\"kb\":\"KB\",\"mb\":\"MB\",\"tb\":\"TB\"}}},\"percentage\":{\"format\":{\"delimiter\":\"\",\"format\":\"%n%\"}},\"precision\":{\"format\":{\"delimiter\":\"\"}}},\"routes\":{\"bio\":\"biografia\",\"department_people\":\"carrecs/departments/:department_slug\",\"departments\":\"departments\",\"events\":\"agendes\",\"executive_category_events\":\"agendes/directius\",\"executive_category_past_events\":\"agendes/directius/reunions-passades\",\"gifts\":\"regals-i-obsequis\",\"government\":\"govern\",\"government_party_events\":\"agendes/govern\",\"government_party_past_events\":\"agendes/govern/reunions-passades\",\"interest_groups\":\"grups-d-interes\",\"invitations\":\"invitacions\",\"managers\":\"directius\",\"messages\":\"contacte\",\"opposition\":\"oposicio\",\"opposition_party_events\":\"agendes/oposicio\",\"opposition_party_past_events\":\"agendes/oposicio/reunions-passades\",\"past_events\":\"agendes/reunions-passades\",\"people\":\"carrecs\",\"people_and_agendas\":\"carrecs-i-agendes\",\"people_government\":\"carrecs/govern\",\"people_managers\":\"carrecs/directius\",\"people_opposition\":\"carrecs/oposicio\",\"person_events\":\"agendes/:container_slug\",\"person_past_events\":\"agendes/:container_slug/reunions-passades\",\"person_post_tags\":\"blogs/:person_slug/tags\",\"person_posts\":\"blogs/:person_slug\",\"person_statements\":\"declaracions/:person_slug\",\"political_groups\":\"carrecs/grups-politics\",\"post_tags\":\"blogs/tags\",\"posts\":\"blogs/posts\",\"statements\":\"declaracions\",\"trips\":\"viatges-i-desplacaments\"},\"scopes\":{\"events\":{\"scopes_scope_created\":\"\u00C0mbit creat\",\"scopes_scope_updated\":\"\u00C0mbit actualitzat\"}},\"shared\":{\"currently\":\"actualment\",\"download_open_data\":{\"exports\":\"Descarregueu les dades en format reutilitzable\"},\"poll_question\":{\"multiple_choice_msg\":\"Podeu triar diverses opcions\"},\"polls\":{\"no_unanswered_polls\":\"No hi ha enquestes pendents de contestar.\",\"opinion\":\"Opineu\"},\"previous\":\"anterior\"},\"sites\":{\"events\":{\"sites_site_created\":\"Site creat\",\"sites_site_destroyed\":\"Site eliminat\",\"sites_site_modules_updated\":\"M\u00F3duls del site actualitzats\",\"sites_site_updated\":\"Site actualitzat\",\"sites_site_visibility_updated\":\"Site publicat\"}},\"support\":{\"array\":{\"last_word_connector\":\" i \",\"two_words_connector\":\" i \",\"words_connector\":\", \"}},\"time\":{\"am\":\"am\",\"formats\":{\"default\":\"%A, %d %B de %Y %H:%M:%S %z\",\"from_to\":\"De %{starts} a %{ends}\",\"long\":\"%d %B de %Y %H:%M\",\"short\":\"%d %b %H:%M\"},\"pm\":\"pm\"},\"user\":{\"census_verifications\":{\"create\":{\"error\":\"No s\\'ha pogut verificar la teva identitat. Per favor, revisa les teves dades i prova de nou. Si el problema continua, comunica\\'t amb la teva administraci\u00F3\",\"notice\":\"La teva identitat ha estat verificada correctament\"},\"form\":{\"verify\":\"Verificar\"},\"messages\":{\"already_verified\":\"El teu compte ja est\u00E0 verificat\",\"comments\":{\"not_verified\":\"La contribuci\u00F3 en que vols participar exigeix que verifiquis que est\u00E0s empadronat/ada a %{site_name}. Confirma les teves dades per continuar (seran verificades amb el padr\u00F3, si no est\u00E0s empadronat/ada, no et podrem verificar)\"},\"consultation_responses\":{\"not_verified\":\"El proc\u00E9s en el que vols participar exigeix que verifiquis que est\u00E0s empadronat/ada a %{site_name}. Confirma les teves dades per continuar (seran verificades amb el padr\u00F3, si no est\u00E0s empadronat/ada, no et podrem verificar)\"},\"contributions\":{\"not_verified\":\"La contribuci\u00F3 en que vols participar exigeix que verifiquis que est\u00E0s empadronat/ada a %{site_name}. Confirma les teves dades per continuar (seran verificades amb el padr\u00F3, si no est\u00E0s empadronat/ada, no et podrem verificar)\"},\"flags\":{\"not_verified\":\"La contribuci\u00F3 en que vols participar exigeix que verifiquis que est\u00E0s empadronat/ada a %{site_name}. Confirma les teves dades per continuar (seran verificades amb el padr\u00F3, si no est\u00E0s empadronat/ada, no et podrem verificar)\"},\"not_verified\":\"El proc\u00E9s en el que vols participar exigeix que verifiquis que est\u00E0s empadronat/ada a %{site_name}. Confirma les teves dades per continuar (seran verificades amb el padr\u00F3, si no est\u00E0s empadronat/ada, no et podrem verificar)\",\"poll_answers\":{\"not_verified\":\"El proc\u00E9s en el que vols participar exigeix que verifiquis que est\u00E0s empadronat/ada a %{site_name}. Confirma les teves dades per continuar (seran verificades amb el padr\u00F3, si no est\u00E0s empadronat/ada, no et podrem verificar)\"},\"process_contributions\":{\"not_verified\":\"La contribuci\u00F3 en que vols participar exigeix que verifiquis que est\u00E0s empadronat/ada a %{site_name}. Confirma les teves dades per continuar (seran verificades amb el padr\u00F3, si no est\u00E0s empadronat/ada, no et podrem verificar)\"},\"votes\":{\"not_verified\":\"La contribuci\u00F3 en que vols participar exigeix que verifiquis que est\u00E0s empadronat/ada a %{site_name}. Confirma les teves dades per continuar (seran verificades amb el padr\u00F3, si no est\u00E0s empadronat/ada, no et podrem verificar)\"}},\"new\":{\"title\":\"Verifica la teva identitat\"}},\"confirmations\":{\"create\":{\"error\":\"Les dades que has introduit no semblen ser correctes. Per favor, intenta-ho de nou.\",\"success\":\"Sessi\u00F3 iniciada correctament\"},\"form\":{\"document_number_notice\":\"N\u00FAmero de document (si et falla prova sense lletra)\",\"gender\":{\"female\":\"Dona\",\"male\":\"Home\"},\"hints\":{\"census_locked\":\"Aquesta informaci\u00F3 prov\u00E9 del cens, de manera que no \u00E9s editable.\",\"date_of_birth\":\"Aquesta informaci\u00F3 ser\u00E0 privada, i mai se t\\'identificar\u00E0 amb el teu perfil. La dada ser\u00E0 anonimitzada, i te la demanem nom\u00E9s per poder obtindre informaci\u00F3 segmentada i entendre millor les opinions i prefer\u00E8ncies dels ciutadans.\",\"email\":\"La teva adre\u00E7a de correu-e ser\u00E0 privada en tot moment. Nom\u00E9s la utilitzarem per enviar-te comunicacions.\",\"gender\":\"Aquesta informaci\u00F3 ser\u00E0 privada, i mai se t\\'identificarem amb el teu perfil. La dada ser\u00E0 anonimitzada, i te la demanem nom\u00E9s per poder obtindre informaci\u00F3 segmentada i entendre millor les opinions i prefer\u00E8ncies dels ciutadans.\"},\"submit\":\"Desa\",\"your_gender_is\":\"Ets...\"},\"new\":{\"error\":\"La URL no sembla correcta\",\"title\":\"Ja casi estem: completa les dades per personalitzar les alertes i participar a la web. Pots completar el teu perfil m\u00E9s endavant.\"}},\"custom_sessions\":{\"create\":{\"invalid_data\":\"Les dades rebudes no s\u00F3n v\u00E0lids. No s\\'ha pogut crear la sessi\u00F3\",\"not_confirmed\":\"Revisa el teu correu-e i fes click en l\\'enlla\u00E7 de confirmaci\u00F3 per poder accedir al servei\",\"success\":\"Sessi\u00F3 iniciada correctament\"},\"destroy\":{\"success\":\"Sessi\u00F3 terminada correctament\"},\"null_strategy\":{\"edit_form\":{\"edit\":\"Afegiu algun camp a aquest formulari\",\"session_title\":\"Si us plau, completeu els camps que falten (Null strategy)\",\"submit\":\"Enviar\"},\"new_form\":{\"session_title\":\"Iniciar sessi\u00F3 (Null strategy)\",\"submit\":\"Enviar\"}}},\"layouts\":{\"menu_subsections\":{\"admin\":\"Configuraci\u00F3\",\"alerts\":\"Las teves alertes\",\"notifications\":\"Notificacions\"}},\"notification_mailer\":{\"notification_digest\":{\"bye\":\"Salutacions\",\"hi\":\"Hola\",\"manage_notifications\":\"Recorda que pots administrar les teves notificacions a %{url}\",\"manage_notifications_html\":\"Recorda que pots administrar les teves notificacions a \\\\u003ca href=\\'%{url}\\'\\\\u003ela teva p\u00E0gina de configuraci\u00F3\\\\u003c/a\\\\u003e\",\"new_activity\":\"Hi ha nova activitat en %{site_name}\",\"subject\":\"Resum d\\'activitat en %{site_name}\"},\"single_notification\":{\"bye\":\"Salutacions\",\"hi\":\"Hola\",\"manage_notifications\":\"Recorda que pots administrar les teves notificacions a %{url}\",\"manage_notifications_html\":\"Recorda que pots administrar les teves notificacions a \\\\u003ca href=\\'%{url}\\'\\\\u003ela teva p\u00E0gina de configuraci\u00F3\\\\u003c/a\\\\u003e\",\"new_activity\":\"Hi ha una nova activitat a %{site_name}\",\"subject\":\"Nova activitat a %{site_name}: %{action_name}\"}},\"notifications\":{\"index\":{\"no_new_notifications\":\"No hi ha notificacions noves\",\"title\":\"Activitat recent\"}},\"passwords\":{\"create\":{\"error\":\"La direcci\u00F3 d\\'email que has indicat no sembla ser v\u00E0lida\",\"success\":\"Per favor, comprova el teu email per rebre les instruccions\"},\"edit\":{\"error\":\"Aquesta URL no sembla ser v\u00E0lida\",\"title\":\"Estableix la teva nova contrasenya:\"},\"edit_form\":{\"submit\":\"Canviar\"},\"update\":{\"error\":\"Hi ha hagut un problema al canviar la teva contrasenya\",\"success\":\"Sessi\u00F3 iniciada correctament\"}},\"registrations\":{\"create\":{\"email_taken\":\"El e-mail ja est\u00E0 en \u00FAs. Prova a fer login o a recuperar la contrasenya\",\"error\":\"Les dades que has introduit no semblen ser v\u00E0lides. Per favor, intenta-ho de nou.\",\"success\":\"Genial. Revisa el teu correu-e i fes click en l\\'enlla\u00E7 de confirmaci\u00F3 per continuar amb el proc\u00E9s de registre.\"}},\"sessions\":{\"create\":{\"error\":\"Les dades que has introduit no semblen ser v\u00E0lides. Per favor, intenta-ho de nou.\",\"success\":\"Sessi\u00F3 iniciada correctament\"},\"destroy\":{\"success\":\"Sessi\u00F3 terminada correctament\"},\"new\":{\"password_title\":\"No recordes la teva contrasenya? T\\'ajudem:\",\"registration_title\":\"Nou per ac\u00ED? Crea un compte:\",\"session_title\":\"Ja tens compte? Fes login\"},\"new_password_form\":{\"session_section\":\"Te\\'n recordes de la contrasenya? Fes login\",\"submit\":\"Recuperar\"},\"registration_form\":{\"submit\":\"Anem\"},\"session_form\":{\"password_section\":\"Contrasenya?\",\"submit\":\"Connectar-se\"},\"user_already_authenticated\":\"Ja est\u00E0s autenticat\",\"user_not_authorized\":\"No est\u00E0s autoritzat.\",\"user_not_signed_in\":\"Registra\\'t o fes login per poder continuar.\"},\"settings\":{\"form\":{\"gender\":{\"female\":\"Dona\",\"male\":\"Home\"},\"hints\":{\"census_locked\":\"Aquesta informaci\u00F3 prov\u00E9 del cens, de manera que no \u00E9s editable.\",\"date_of_birth\":\"Aquesta informaci\u00F3 ser\u00E0 privada, i nunca s\\'identificar\u00E0 amb el teu perfil. La dada ser\u00E0 anonimitzada, i te la demanem nom\u00E9s per a poder obtindre informaci\u00F3 segmentada i entendre millor les opinions i prefer\u00E8ncies dels ciutadans.\",\"email\":\"La teva adre\u00E7a de correu-e ser\u00E0 privada en tot moment. Nom\u00E9s l\\'utilitzarem per enviar-te comunicacions.\",\"gender\":\"Aquesta informaci\u00F3 ser\u00E0 privada, i nunca s\\'identificar\u00E0 amb el teu perfil. La dada ser\u00E0 anonimitzada, i te la demanem nom\u00E9s per a poder obtindre informaci\u00F3 segmentada i entendre millor les opinions i prefer\u00E8ncies dels ciutadans.\"},\"submit\":\"Guardar\",\"your_gender_is\":\"Eres...\"},\"show\":{\"title\":\"El teu compte\"},\"update\":{\"error\":\"Hi ha hagut un error al desar la teva configuraci\u00F3\",\"success\":\"Configuraci\u00F3 desada amb \u00E9xit\"}},\"subscription_preferences\":{\"update\":{\"error\":\"Ha ocorregut un problema al actualitzar: %{details}\",\"update_success\":\"S\\'han actualitzat les dades correctament\"}},\"subscriptions\":{\"create\":{\"create_success\":\"S\\'ha realitzat la suscripci\u00F3\",\"delete_success\":\"S\\'ha cancel\u00B7lat aquesta suscripci\u00F3\",\"error\":\"Ha ocorregut un problema en subscriure\\'t: %{details}. Si ja est\u00E0s registrat, identifica\\'t \\\\u003ca href=\\\\\"%{sign_in_path}\\\\\"\\\\u003eac\u00ED\\\\u003c/a\\\\u003e.\"},\"destroy\":{\"success\":\"S\\'ha cancel\u00B7lat aquesta suscripci\u00F3\"},\"index\":{\"areas\":\"\u00C0rees\",\"frequency\":\"Freq\u00FC\u00E8ncia\",\"modules\":{\"gobierto_budgets\":\"Pressupostos\",\"gobierto_observatory\":\"Observatori\",\"gobierto_people\":\"Persones\"},\"notification_frequency\":{\"daily\":\"Resum diari\",\"disabled\":\"Deshabilitades\",\"hourly\":\"Resum cada hora\",\"immediate\":\"Inmediates\",\"submit\":\"Desa\",\"weekly\":\"Resum setmanal\"},\"people\":\"Persones\",\"submit\":\"Desa\",\"title\":\"Les teves alertes\",\"whole_site\":\"Tot el site\"},\"subscribable_box\":{\"cancel\":\"Ja est\u00E0s subscrit, cancel\u00B7lar?\",\"form\":{\"placeholders\":{\"user_email\":\"El teu correu-e\"},\"submit\":\"Subscriu-me\"},\"subscribe\":\"Subscriu-me\"},\"subscribable_button\":{\"event_followed\":\"Esdeveniment seguit!\",\"follow_event\":\"Segueix l\\'esdeveniment\",\"follow_group_process\":\"Segueix el grup\",\"follow_issue\":\"Segueix el tema\",\"follow_person\":\"Segueix la persona\",\"follow_process\":\"Segueix el proc\u00E9s\",\"follow_scope\":\"Segueix l\u00B4\u00E0mbit\",\"group_process_followed\":\"Grup seguit!\",\"issue_followed\":\"Tema seguit!\",\"manage_subscriptions\":\"Gestionar les teves alertes\",\"person_followed\":\"Persona seguida!\",\"process_followed\":\"Proc\u00E9s seguit!\",\"scope_followed\":\"\u00C0mbit seguit!\"}},\"user_mailer\":{\"confirmation_instructions\":{\"bye\":\"Salutacions\",\"click_link\":\"Per confirmar el teu registre fes click en el seg\u00FCent enlla\u00E7:\",\"hi\":\"Hola\",\"ignore_link\":\"si no t\\'estaves subscrivint a %{site_name}, pots ignorar este missatge\",\"subject\":\"Completa el teu registre en %{site_name}\"},\"reset_password_instructions\":{\"bye\":\"Salutacions\",\"click_link\":\"Has solicitat restaurar la teva contrasenya. Pulsa en el seg\u00FCent enlla\u00E7 i segueix les instruccions:\",\"hi\":\"Hola\",\"subject\":\"Restaura la teva contrasenya\"},\"welcome\":{\"alerts\":\"Pots gestionar les teves alertes des del teu compte: %{subscriptions_url}\",\"bye\":\"Salutacions\",\"hi\":\"Hola\",\"subject\":\"Benvingut\",\"success\":\"El registre s\\'ha completat amb \u00E8xit. Ara pots interactuar a %{site_url} com usuari registrat.\"}}},\"users\":{\"events\":{\"users_user_updated\":\"Usuari actualitzat\"}},\"views\":{\"delete\":\"Eliminar\",\"delete_confirm\":\"Est\u00E0s segur? Aquesta operaci\u00F3 no \u00E9s reversible\",\"edit\":\"Edita\",\"forms\":{\"max_characters\":\"M\u00E0x. %{length} car\u00E0cters\",\"required\":\"Obligatori\",\"required_and_max_characters\":\"Obligatori i m\u00E0x. %{length} car\u00E0cters\"},\"of\":\"de\",\"pagination\":{\"next\":\"Seg\u00FCent\",\"previous\":\"Anterior\",\"truncate\":\"\\\\u0026hellip;\"},\"see\":{\"less\":\"veure menys\",\"more\":\"veure m\u00E9s\"}}}'));\nI18n.translations[\"en\"] = I18n.extend((I18n.translations[\"en\"] || {}), JSON.parse('{\"activemodel\":{\"attributes\":{\"gobierto_admin/admin_confirmation_form\":{\"email\":\"Email\"},\"gobierto_admin/admin_edit_password_form\":{\"password\":\"Password\",\"password_confirmation\":\"Password confirmation\"},\"gobierto_admin/admin_form\":{\"email\":\"Email\",\"name\":\"Name\",\"password\":\"Password\",\"password_confirmation\":\"Password confirmation\",\"site_ids\":\"Sites\",\"site_modules\":\"Modules\"},\"gobierto_admin/admin_group_form\":{\"name\":\"Group name\"},\"gobierto_admin/admin_invitation_form\":{\"emails\":\"Emails\",\"site_ids\":\"Sites\"},\"gobierto_admin/admin_new_password_form\":{\"email\":\"Email\"},\"gobierto_admin/file_attachment_form\":{\"description\":\"Description\",\"file_digest\":\"This file\",\"name\":\"Name\"},\"gobierto_admin/gobierto_budgets/options_form\":{\"budgets_guide_page\":\"Budgets guide page\",\"comparison_compare_municipalities\":\"Show specific municipalities\",\"comparison_context_table_enabled\":\"Show context table\",\"comparison_show_widget\":\"Show comparison widget\",\"comparison_tool_enabled\":\"Comparison\",\"feedback_emails\":\"Email to receive particpations\",\"receipt_configuration\":\"Receipt configuration\"},\"gobierto_admin/gobierto_calendars/calendar_configuration_form\":{\"ibm_notes_pwd\":\"Password\",\"ibm_notes_url\":\"URL\",\"ibm_notes_usr\":\"Username\",\"microsoft_exchange_pwd\":\"Password\",\"microsoft_exchange_url\":\"URL\",\"microsoft_exchange_usr\":\"Username\"},\"gobierto_admin/gobierto_calendars/event_form\":{\"attachment_file\":\"Attached file\",\"description\":\"Description\",\"ends_at\":\"End date\",\"starts_at\":\"Start date\",\"title\":\"Title\",\"title_translations\":\"Title\"},\"gobierto_admin/gobierto_cms/page_form\":{\"body\":\"Body\",\"published_on\":\"Publication date\",\"slug\":\"URL\",\"title\":\"Title\"},\"gobierto_admin/gobierto_cms/section_form\":{\"slug\":\"URL\",\"title\":\"Title\"},\"gobierto_admin/gobierto_common/collection_form\":{\"container_global_id\":\"Container\",\"container_id\":\"Container\",\"item_type\":\"Type\",\"slug\":\"URL\",\"title\":\"Title\"},\"gobierto_admin/gobierto_common/custom_field_form\":{\"date\":\"Date\",\"field_type\":\"Type of field\",\"image\":\"Image\",\"indicators\":\"Indicators\",\"localized_paragraph\":\"Long text\",\"localized_string\":\"Text (line)\",\"multiple_options\":\"Multiple selections\",\"name\":\"Name\",\"numeric\":\"Number\",\"options\":\"Options\",\"paragraph\":\"Long text without translations\",\"single_option\":\"One selection\",\"string\":\"Text without translations (line)\",\"uid\":\"Identifier\",\"vocabulary_options\":\"Vocabulary\"},\"gobierto_admin/gobierto_common/term_form\":{\"description\":\"Description\",\"external_id\":\"External ID\",\"name\":\"Name\",\"slug\":\"Slug\",\"term_id\":\"Parent Term\"},\"gobierto_admin/gobierto_common/vocabulary_form\":{\"name\":\"Name\"},\"gobierto_admin/gobierto_data/dataset_form\":{\"name\":\"Name\",\"slug\":\"Slug\",\"table_name\":\"Table name\"},\"gobierto_admin/gobierto_data/settings_form\":{\"api_settings_max_dataset_size_for_queries\":\"Datasets maximum size without limiting the preview (MB)\",\"db_config\":\"Database connection configuration\",\"frontend_enabled\":\"Front-end visible\"},\"gobierto_admin/gobierto_investments/project_form\":{\"external_id\":\"External ID\",\"title\":\"Title\"},\"gobierto_admin/gobierto_observatory/settings_form\":{\"observatory_config\":\"Observatory configuration\"},\"gobierto_admin/gobierto_people/person_form\":{\"avatar_file\":\"Avatar\",\"avatar_url\":\"Avatar\",\"bio\":\"Bio\",\"bio_file\":\"Attached file\",\"bio_url\":\"Attached file\",\"category\":\"Category\",\"charge\":\"Position\",\"email\":\"Email\",\"name\":\"Name\",\"party\":\"Party\",\"political_group_id\":\"Political group\"},\"gobierto_admin/gobierto_people/person_post_form\":{\"body\":\"Body\",\"tags\":\"Tags\",\"title\":\"Title\"},\"gobierto_admin/gobierto_people/person_statement_form\":{\"attachment_file\":\"Attached file\",\"published_on\":\"Publishing date\",\"title\":\"Title\",\"title_translations\":\"Title\"},\"gobierto_admin/gobierto_people/political_group_form\":{\"name\":\"Group name\"},\"gobierto_admin/gobierto_plans/node_form\":{\"category_id\":\"Category\",\"ends_at\":\"End date\",\"name\":\"Project\",\"progress\":\"Progress\",\"starts_at\":\"Start date\",\"status_id\":\"Status\"},\"gobierto_admin/gobierto_plans/plan_form\":{\"configuration_data\":\"Configuration\",\"css\":\"CSS\",\"csv_file\":\"CSV file\",\"footer\":\"Footer\",\"introduction\":\"Introduction\",\"plan_type_id\":\"Type\",\"slug\":\"url\",\"statuses_vocabulary_id\":\"Statuses vocabulary\",\"title\":\"Title\",\"vocabulary_id\":\"Categories vocabulary\",\"year\":\"Year\"},\"gobierto_admin/gobierto_plans/plan_type_form\":{\"name\":\"Name\",\"slug\":\"url\"},\"gobierto_admin/gobierto_visualizations/settings_form\":{\"visualizations_config\":\"Visualizations configuration\"},\"gobierto_admin/issue_form\":{\"name\":\"Name\",\"slug\":\"URL\"},\"gobierto_admin/scope_form\":{\"name\":\"Name\"},\"gobierto_admin/site_form\":{\"admin_custom_code\":\"Admin custom code\",\"available_locales\":\"Available locales\",\"default_locale\":\"Default locale\",\"domain\":\"Domain\",\"foot_markup\":\"Foot HTML\",\"google_analytics_id\":\"Google Analytics code\",\"head_markup\":\"Head HTML\",\"home_page\":\"Home module\",\"home_page_item_id\":\"Home page\",\"links_markup\":\"Links HTML\",\"logo_file\":\"Logo\",\"name\":\"Entity ame\",\"organization_id\":\"Organization identifier (INE code)\",\"organization_name\":\"Organization\",\"populate_data_api_token\":\"API token Populate Data\",\"privacy_page_id\":\"Privacy page\",\"raw_configuration_variables\":\"Other configuration variables\",\"registration_disabled\":\"Disable registration (only hides links to registration/login)\",\"reply_to_email\":\"Email address for answers\",\"title\":\"Site name\"},\"gobierto_admin/user_form\":{\"email\":\"Email\",\"name\":\"Name\"},\"gobierto_admin/user_password_form\":{\"password\":\"Password\",\"password_confirmation\":\"Password confirmation\"},\"gobierto_dashboards/dashboard_form\":{\"title\":\"Title\"},\"gobierto_people/person_message\":{\"body\":\"Message\",\"email\":\"Your email\",\"name\":\"Your name\"},\"user/census_verification_form\":{\"date_of_birth\":\"Date of birth\",\"document_number\":\"Document number\",\"site\":\"Site\"},\"user/confirmation_form\":{\"date_of_birth\":\"Date of birth\",\"document_number\":\"Document number\",\"email\":\"Your e-mail\",\"gender\":\"Gender\",\"name\":\"Your name\",\"password\":\"Your password\",\"password_confirmation\":\"Your password, one more time\"},\"user/confirmation_request_form\":{\"email\":\"Your e-mail\"},\"user/edit_password_form\":{\"password\":\"Your password\",\"password_confirmation\":\"Your password, one more time\"},\"user/new_password_form\":{\"email\":\"Your e-mail\"},\"user/registration_form\":{\"email\":\"Your e-mail\"},\"user/session_form\":{\"email\":\"Your e-mail\",\"password\":\"Password\"},\"user/settings_form\":{\"date_of_birth\":\"Date of birth\",\"email\":\"Your e-mail\",\"gender\":\"Gender\",\"name\":\"Your name\",\"password\":\"Your password\",\"password_confirmation\":\"Your password, one more time\"},\"user/subscription_form\":{\"subscribable\":\"Resource\",\"user\":\"User\",\"user_email\":\"E-mail\"}},\"errors\":{\"models\":{\"gobierto_admin/gobierto_common/vocabulary_terms_import_form\":{\"attributes\":{\"base\":{\"invalid_row\":\"There is an invalid row: %{row_data}\"}}},\"gobierto_admin/gobierto_data/dataset_form\":{\"attributes\":{\"table_name\":{\"invalid_table\":\"Unable to access the table. Error message: \\\\\"%{error_message}\\\\\"\"}}},\"gobierto_admin/gobierto_data/settings_form\":{\"attributes\":{\"db_config\":{\"invalid_connection\":\"Unable to connect using configuration data. Error message: \\\\\"%{error_message}\\\\\"\",\"invalid_format\":\"The configuration does not have a valid JSON format\"}}},\"gobierto_admin/gobierto_observatory/settings_form\":{\"attributes\":{\"observatory_config\":{\"invalid_format\":\"The configuration does not have a valid JSON format\",\"invalid_values\":\"The configuration does not have valid values\"}}},\"gobierto_admin/gobierto_plans/plan_data_form\":{\"attributes\":{\"base\":{\"category_not_found\":\"One of the categories couldn\\'t be found. Row content: %{row_data}\",\"external_id_taken\":\"The external_id field is already in use, either because another row has the same external_id or because it was empty and this value was automatically assigned. Row content: %{row_data}\",\"file_not_found\":\"File not found\",\"invalid_columns\":\"Required columns are missing\",\"invalid_format\":\"Invalid file format\",\"invalid_row\":\"There is an invalid row: %{row_data}\",\"status_missing\":\"The state on the row has not been found in the corresponding statuses vocabulary or there is a status in the row but none statuses vocabulary has been configured in the plan. Row content: %{row_data}\",\"term_not_found\":\"The term \\'%{term}\\' couldn\\'t be found in the vocabulary \\'%{vocabulary}\\' used by the column \\'Node.%{uid}\\'\",\"used_resource\":\"The vocabulary contains terms used in other parts of the application\"}}},\"gobierto_admin/gobierto_plans/plan_table_custom_fields_form\":{\"attributes\":{\"base\":{\"file_not_found\":\"File not found\",\"invalid_columns\":\"Required columns are missing\",\"invalid_format\":\"Invalid file format\"}}},\"gobierto_admin/gobierto_plans/projects_form\":{\"attributes\":{\"base\":{\"category_missing\":\"Category not found in project data. Please, provide a valid category_id or category_external_id. Project data: %{json_data}\",\"failed_import\":\"The project with the following data could not be imported: %{json_data}\",\"status_missing\":\"Status not found in project data. Please, provide a valid status_id or status_external_id. Project data: %{json_data}\"}}},\"gobierto_admin/gobierto_visualizations/settings_form\":{\"attributes\":{\"visualizations_config\":{\"invalid_format\":\"The configuration does not have a valid JSON format\",\"invalid_values\":\"The configuration does not have valid values\"}}},\"gobierto_data/dataset_form\":{\"attributes\":{\"data_file\":{\"no_file_included\":\"The file hasn\\'t been uploaded. Please, review the request and ensure the file content has been sent in the request\"}}}}},\"models\":{\"gobierto_admin/admin_confirmation_form\":\"Confirmation\",\"gobierto_admin/admin_edit_password_form\":\"Password change\",\"gobierto_admin/admin_form\":\"Admin\",\"gobierto_admin/admin_group_form\":\"Group\",\"gobierto_admin/admin_invitation_form\":\"Invitation\",\"gobierto_admin/admin_new_password_form\":\"Password recovery\",\"gobierto_admin/file_attachment_form\":\"Document change\",\"gobierto_admin/gobierto_budgets/options_form\":\"Options\",\"gobierto_admin/gobierto_calendars/event_form\":\"Event\",\"gobierto_admin/gobierto_cms/page_form\":\"Page\",\"gobierto_admin/gobierto_cms/section_form\":\"Section\",\"gobierto_admin/gobierto_common/collection_form\":\"Collection\",\"gobierto_admin/gobierto_common/content_block_form\":\"Content block\",\"gobierto_admin/gobierto_common/term_form\":\"Term\",\"gobierto_admin/gobierto_common/vocabulary_form\":\"Vocabulary\",\"gobierto_admin/gobierto_people/person_form\":\"Person\",\"gobierto_admin/gobierto_people/person_post_form\":\"Post\",\"gobierto_admin/gobierto_people/person_statement_form\":\"Statement\",\"gobierto_admin/gobierto_people/political_group_form\":\"Political group\",\"gobierto_admin/issue_form\":\"Issue\",\"gobierto_admin/scope_form\":\"Scope\",\"gobierto_admin/site_form\":\"Site\",\"gobierto_admin/user_form\":\"User\",\"gobierto_admin/user_password_form\":\"Password change\",\"gobierto_admin/user_welcome_message_form\":\"Welcome message\",\"gobierto_people/person_message\":\"Message\",\"user/census_verification_form\":\"Census verification\",\"user/confirmation_form\":\"Confirmation\",\"user/confirmation_request_form\":\"Confirmation request\",\"user/edit_password_form\":\"Change password\",\"user/new_password_form\":\"Recover password\",\"user/registration_form\":\"Registration\",\"user/session_form\":\"Session\",\"user/settings_form\":\"Settings\",\"user/subscription_form\":\"Subscription\"}},\"activerecord\":{\"attributes\":{\"gobierto_admin/api_token\":{\"domain\":\"Domain\",\"name\":\"Name\"},\"gobierto_admin/permission/site_option\":{\"resource_types\":{\"admins\":\"Admins\",\"calendars\":\"Calendars\",\"custom_fields\":\"Custom fields\",\"customize\":\"Customize site\",\"documents\":\"Documents\",\"templates\":\"Templates\",\"vocabularies\":\"Vocabularies\"}},\"gobierto_attachments/attachment\":{\"current_version\":\"Current version\",\"description\":\"Description\",\"file_digest\":\"File\",\"file_name\":\"File name\",\"file_size\":\"File size\",\"name\":\"Name\",\"url\":\"URL\"},\"gobierto_calendars/event_attendee\":{\"charge\":\"Position\",\"name\":\"Name\",\"person\":\"Person\"},\"gobierto_calendars/event_location\":{\"address\":\"Address\",\"name\":\"Name\"},\"gobierto_calendars/filtering_rule\":{\"remove_filtering_text\":\"Remove filtering text\"},\"gobierto_cms/page\":{\"body\":\"Body\",\"slug\":\"URL\",\"title\":\"Title\"},\"gobierto_common/api_token_form\":{\"domain\":\"Domain\",\"name\":\"Name\"},\"gobierto_common/content_block_field\":{\"field_type\":\"Field type\",\"field_types\":{\"currency\":\"Currency\",\"date\":\"Date\",\"text\":\"Text\",\"url\":\"URL\"}},\"gobierto_people/trip\":{\"accomodation_expenses\":\"Accomodation expenses\",\"food_expenses\":\"Food expenses\",\"other_expenses\":\"Other expenses\",\"total_expenses\":\"Total expenses\",\"transport_expenses\":\"Transport\"},\"user/api_token\":{\"domain\":\"Domain\",\"name\":\"Name\"}},\"enums\":{\"gobierto_calendars/filtering_rule\":{\"action\":{\"ignore\":\"Ignore\",\"import\":\"Import\",\"import_as_draft\":\"Import as draft\"},\"condition\":{\"contains\":\"Contains\",\"ends_with\":\"Ends with\",\"not_contains\":\"Not contains\",\"not_starts_with\":\"Not starts with\",\"starts_with\":\"Starts with\"},\"field\":{\"description\":\"Description\",\"title\":\"Title\"}}},\"errors\":{\"messages\":{\"record_invalid\":\"Validation failed: %{errors}\",\"restrict_dependent_destroy\":{\"has_many\":\"Cannot delete record because dependent %{record} exist\",\"has_one\":\"Cannot delete record because a dependent %{record} exists\"}},\"models\":{\"gobierto_admin/api_token\":{\"attributes\":{\"domain\":{\"not_valid_format\":\"Invalid format\"}}},\"gobierto_common/custom_field_record\":{\"attributes\":{\"item\":{\"wrong_item_class\":\"not associated with an item of the appropriate class\"}}},\"gobierto_common/term\":{\"attributes\":{\"base\":{\"has_dependent_resources_html\":\"Is being used by the following resources:\\\\u003c/br\\\\u003e %{dependencies_list}\"}}},\"gobierto_data/connection\":{\"missing_configuration\":\"Database configuration missing\"},\"user/api_token\":{\"attributes\":{\"domain\":{\"not_valid_format\":\"Invalid format\"}}}}},\"messages\":{\"gobierto_attachments/attachment\":{\"file_too_big\":\"File exceeds max size\"}},\"models\":{\"gobierto_attachments/attachment\":\"Document\",\"gobierto_calendars/event\":\"Event\",\"gobierto_calendars/event_attendee\":\"Attendee\",\"gobierto_calendars/event_location\":\"Location\",\"gobierto_cms/news\":\"News\",\"gobierto_cms/news_plural\":\"News\",\"gobierto_cms/page\":\"Page\",\"gobierto_cms/pages_collection\":\"Pages Collection\",\"gobierto_common/content_block_field\":\"Field\",\"gobierto_data/dataset\":{\"one\":\"Dataset\",\"other\":\"Datasets\"},\"gobierto_investments/project\":{\"one\":\"Project\",\"other\":\"Projects\"},\"gobierto_people/person\":\"Officer\",\"gobierto_people/person_post\":\"Post\",\"gobierto_people/person_statement\":\"Statement\",\"gobierto_plans/node\":{\"one\":\"Project\",\"other\":\"Projects\"},\"gobierto_plans/plan\":{\"one\":\"Plan\",\"other\":\"Plans\"},\"user\":\"User\"}},\"admin_gobierto_calendars\":{\"events\":{\"admin_gobierto_calendars_calendars_synchronized\":\"Synchronized calendars\"}},\"admin_groups\":{\"events\":{\"admin_groups_admin_group_created\":\"Admin group created\",\"admin_groups_admin_group_updated\":\"Admin group updated\"}},\"admins\":{\"events\":{\"admins_admin_authorization_level_updated\":\"Admin authorization level updated\",\"admins_admin_created\":\"Admin created\",\"admins_admin_group_member_created\":\"Admin added to permissions group\",\"admins_admin_group_member_deleted\":\"Admin removed from permissions group\",\"admins_admin_updated\":\"Admin updated\",\"admins_invitation_accepted\":\"Admin invitation accepted\",\"admins_invitation_created\":\"Admin invited\"}},\"based_on\":\"Web based on\",\"census\":{\"events\":{\"census_census_imported\":\"Census imported\"}},\"concerns\":{\"gobierto_common\":{\"api_tokens_concern\":{\"create\":{\"success\":\"API Token was successfully created\"},\"destroy\":{\"failed\":\"API Token couldn\\'t be deleted\",\"success\":\"API Token deleted successfully\"},\"update\":{\"success\":\"API Token was successfully updated\"}}}},\"controllers\":{\"gobierto_budgets\":{\"api\":{\"data\":{\"expense\":\"Expense\",\"income\":\"Income\"}},\"budgets_execution\":{\"index\":{\"alert\":\"There\\'s no data for %{year} so we are showing you the first year with data\"}}}},\"cookies_eu\":{\"cookies_text\":\"Cookies help us deliver our services. By using our services, you agree to our use of cookies.\",\"learn_more\":\"Learn more\",\"ok\":\"OK\"},\"countries\":{\"AC\":\"Ascension Island\",\"AD\":\"Andorra\",\"AE\":\"United Arab Emirates\",\"AF\":\"Afghanistan\",\"AG\":\"Antigua \\\\u0026 Barbuda\",\"AI\":\"Anguilla\",\"AL\":\"Albania\",\"AM\":\"Armenia\",\"AN\":\"Netherlands Antilles\",\"AO\":\"Angola\",\"AQ\":\"Antarctica\",\"AR\":\"Argentina\",\"AS\":\"American Samoa\",\"AT\":\"Austria\",\"AU\":\"Australia\",\"AW\":\"Aruba\",\"AX\":\"\u00C5land Islands\",\"AZ\":\"Azerbaijan\",\"BA\":\"Bosnia \\\\u0026 Herzegovina\",\"BB\":\"Barbados\",\"BD\":\"Bangladesh\",\"BE\":\"Belgium\",\"BF\":\"Burkina Faso\",\"BG\":\"Bulgaria\",\"BH\":\"Bahrain\",\"BI\":\"Burundi\",\"BJ\":\"Benin\",\"BL\":\"St. Barth\u00E9lemy\",\"BM\":\"Bermuda\",\"BN\":\"Brunei\",\"BO\":\"Bolivia\",\"BQ\":\"Caribbean Netherlands\",\"BR\":\"Brazil\",\"BS\":\"Bahamas\",\"BT\":\"Bhutan\",\"BV\":\"Bouvet Island\",\"BW\":\"Botswana\",\"BY\":\"Belarus\",\"BZ\":\"Belize\",\"CA\":\"Canada\",\"CC\":\"Cocos (Keeling) Islands\",\"CD\":\"Congo - Kinshasa\",\"CF\":\"Central African Republic\",\"CG\":\"Congo - Brazzaville\",\"CH\":\"Switzerland\",\"CI\":\"C\u00F4te d\u2019Ivoire\",\"CK\":\"Cook Islands\",\"CL\":\"Chile\",\"CM\":\"Cameroon\",\"CN\":\"China\",\"CO\":\"Colombia\",\"CP\":\"Clipperton Island\",\"CR\":\"Costa Rica\",\"CU\":\"Cuba\",\"CV\":\"Cape Verde\",\"CW\":\"Cura\u00E7ao\",\"CX\":\"Christmas Island\",\"CY\":\"Cyprus\",\"CZ\":\"Czech Republic\",\"DE\":\"Germany\",\"DG\":\"Diego Garcia\",\"DJ\":\"Djibouti\",\"DK\":\"Denmark\",\"DM\":\"Dominica\",\"DO\":\"Dominican Republic\",\"DZ\":\"Algeria\",\"EA\":\"Ceuta \\\\u0026 Melilla\",\"EC\":\"Ecuador\",\"EE\":\"Estonia\",\"EG\":\"Egypt\",\"EH\":\"Western Sahara\",\"ER\":\"Eritrea\",\"ES\":\"Spain\",\"ET\":\"Ethiopia\",\"EU\":\"European Union\",\"FI\":\"Finland\",\"FJ\":\"Fiji\",\"FK\":\"Falkland Islands\",\"FM\":\"Micronesia\",\"FO\":\"Faroe Islands\",\"FR\":\"France\",\"GA\":\"Gabon\",\"GB\":\"United Kingdom\",\"GD\":\"Grenada\",\"GE\":\"Georgia\",\"GF\":\"French Guiana\",\"GG\":\"Guernsey\",\"GH\":\"Ghana\",\"GI\":\"Gibraltar\",\"GL\":\"Greenland\",\"GM\":\"Gambia\",\"GN\":\"Guinea\",\"GP\":\"Guadeloupe\",\"GQ\":\"Equatorial Guinea\",\"GR\":\"Greece\",\"GS\":\"South Georgia \\\\u0026 South Sandwich Islands\",\"GT\":\"Guatemala\",\"GU\":\"Guam\",\"GW\":\"Guinea-Bissau\",\"GY\":\"Guyana\",\"HK\":\"Hong Kong SAR China\",\"HM\":\"Heard \\\\u0026 McDonald Islands\",\"HN\":\"Honduras\",\"HR\":\"Croatia\",\"HT\":\"Haiti\",\"HU\":\"Hungary\",\"IC\":\"Canary Islands\",\"ID\":\"Indonesia\",\"IE\":\"Ireland\",\"IL\":\"Israel\",\"IM\":\"Isle of Man\",\"IN\":\"India\",\"IO\":\"British Indian Ocean Territory\",\"IQ\":\"Iraq\",\"IR\":\"Iran\",\"IS\":\"Iceland\",\"IT\":\"Italy\",\"JE\":\"Jersey\",\"JM\":\"Jamaica\",\"JO\":\"Jordan\",\"JP\":\"Japan\",\"KE\":\"Kenya\",\"KG\":\"Kyrgyzstan\",\"KH\":\"Cambodia\",\"KI\":\"Kiribati\",\"KM\":\"Comoros\",\"KN\":\"St. Kitts \\\\u0026 Nevis\",\"KP\":\"North Korea\",\"KR\":\"South Korea\",\"KW\":\"Kuwait\",\"KY\":\"Cayman Islands\",\"KZ\":\"Kazakhstan\",\"LA\":\"Laos\",\"LB\":\"Lebanon\",\"LC\":\"St. Lucia\",\"LI\":\"Liechtenstein\",\"LK\":\"Sri Lanka\",\"LR\":\"Liberia\",\"LS\":\"Lesotho\",\"LT\":\"Lithuania\",\"LU\":\"Luxembourg\",\"LV\":\"Latvia\",\"LY\":\"Libya\",\"MA\":\"Morocco\",\"MC\":\"Monaco\",\"MD\":\"Moldova\",\"ME\":\"Montenegro\",\"MF\":\"St. Martin\",\"MG\":\"Madagascar\",\"MH\":\"Marshall Islands\",\"MK\":\"Macedonia\",\"ML\":\"Mali\",\"MM\":\"Myanmar (Burma)\",\"MN\":\"Mongolia\",\"MO\":\"Macau SAR China\",\"MP\":\"Northern Mariana Islands\",\"MQ\":\"Martinique\",\"MR\":\"Mauritania\",\"MS\":\"Montserrat\",\"MT\":\"Malta\",\"MU\":\"Mauritius\",\"MV\":\"Maldives\",\"MW\":\"Malawi\",\"MX\":\"Mexico\",\"MY\":\"Malaysia\",\"MZ\":\"Mozambique\",\"NA\":\"Namibia\",\"NC\":\"New Caledonia\",\"NE\":\"Niger\",\"NF\":\"Norfolk Island\",\"NG\":\"Nigeria\",\"NI\":\"Nicaragua\",\"NL\":\"Netherlands\",\"NO\":\"Norway\",\"NP\":\"Nepal\",\"NR\":\"Nauru\",\"NU\":\"Niue\",\"NZ\":\"New Zealand\",\"OM\":\"Oman\",\"PA\":\"Panama\",\"PE\":\"Peru\",\"PF\":\"French Polynesia\",\"PG\":\"Papua New Guinea\",\"PH\":\"Philippines\",\"PK\":\"Pakistan\",\"PL\":\"Poland\",\"PM\":\"St. Pierre \\\\u0026 Miquelon\",\"PN\":\"Pitcairn Islands\",\"PR\":\"Puerto Rico\",\"PS\":\"Palestinian Territories\",\"PT\":\"Portugal\",\"PW\":\"Palau\",\"PY\":\"Paraguay\",\"QA\":\"Qatar\",\"QO\":\"Outlying Oceania\",\"RE\":\"R\u00E9union\",\"RO\":\"Romania\",\"RS\":\"Serbia\",\"RU\":\"Russia\",\"RW\":\"Rwanda\",\"SA\":\"Saudi Arabia\",\"SB\":\"Solomon Islands\",\"SC\":\"Seychelles\",\"SD\":\"Sudan\",\"SE\":\"Sweden\",\"SG\":\"Singapore\",\"SH\":\"St. Helena\",\"SI\":\"Slovenia\",\"SJ\":\"Svalbard \\\\u0026 Jan Mayen\",\"SK\":\"Slovakia\",\"SL\":\"Sierra Leone\",\"SM\":\"San Marino\",\"SN\":\"Senegal\",\"SO\":\"Somalia\",\"SR\":\"Suriname\",\"SS\":\"South Sudan\",\"ST\":\"S\u00E3o Tom\u00E9 \\\\u0026 Pr\u00EDncipe\",\"SV\":\"El Salvador\",\"SX\":\"Saint Martin\",\"SY\":\"Syria\",\"SZ\":\"Swaziland\",\"TA\":\"Tristan da Cunha\",\"TC\":\"Turks \\\\u0026 Caicos Islands\",\"TD\":\"Chad\",\"TF\":\"French Southern Territories\",\"TG\":\"Togo\",\"TH\":\"Thailand\",\"TJ\":\"Tajikistan\",\"TK\":\"Tokelau\",\"TL\":\"Timor-Leste\",\"TM\":\"Turkmenistan\",\"TN\":\"Tunisia\",\"TO\":\"Tonga\",\"TR\":\"Turkey\",\"TT\":\"Trinidad \\\\u0026 Tobago\",\"TV\":\"Tuvalu\",\"TW\":\"Taiwan\",\"TZ\":\"Tanzania\",\"UA\":\"Ukraine\",\"UG\":\"Uganda\",\"UM\":\"U.S. Outlying Islands\",\"US\":\"United States\",\"UY\":\"Uruguay\",\"UZ\":\"Uzbekistan\",\"VA\":\"Vatican City\",\"VC\":\"St. Vincent \\\\u0026 Grenadines\",\"VE\":\"Venezuela\",\"VG\":\"British Virgin Islands\",\"VI\":\"U.S. Virgin Islands\",\"VN\":\"Vietnam\",\"VU\":\"Vanuatu\",\"WF\":\"Wallis \\\\u0026 Futuna\",\"WS\":\"Samoa\",\"XK\":\"Kosovo\",\"YE\":\"Yemen\",\"YT\":\"Mayotte\",\"ZA\":\"South Africa\",\"ZM\":\"Zambia\",\"ZW\":\"Zimbabwe\"},\"country\":\"Spain\",\"date\":{\"abbr_day_names\":[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],\"abbr_month_names\":[null,\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],\"day_names\":[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],\"formats\":{\"day_month\":\"%d/%m\",\"default\":\"%Y-%m-%d\",\"long\":\"%B %d, %Y\",\"short\":\"%b %d %Y\",\"shortest\":\"%d %b %y\"},\"month_names\":[null,\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],\"order\":[\"year\",\"month\",\"day\"]},\"datetime\":{\"distance_in_words\":{\"about_x_hours\":{\"one\":\"about 1 hour ago\",\"other\":\"about %{count} hours ago\"},\"about_x_months\":{\"one\":\"about 1 month ago\",\"other\":\"about %{count} months ago\"},\"about_x_years\":{\"one\":\"about 1 year ago\",\"other\":\"about %{count} years ago\"},\"almost_x_years\":{\"one\":\"almost 1 year ago\",\"other\":\"almost %{count} years ago\"},\"half_a_minute\":\"half a minute ago\",\"less_than_x_minutes\":{\"one\":\"less than a minute ago\",\"other\":\"less than %{count} minutes ago\"},\"less_than_x_seconds\":{\"one\":\"less than 1 second ago\",\"other\":\"less than %{count} seconds ago\"},\"over_x_years\":{\"one\":\"over 1 year ago\",\"other\":\"over %{count} years ago\"},\"x_days\":{\"one\":\"1 day ago\",\"other\":\"%{count} days ago\"},\"x_minutes\":{\"one\":\"1 minute ago\",\"other\":\"%{count} minutes ago\"},\"x_months\":{\"one\":\"1 month ago\",\"other\":\"%{count} months ago\"},\"x_seconds\":{\"one\":\"1 second ago\",\"other\":\"%{count} seconds ago\"},\"x_years\":{\"one\":\"1 year ago\",\"other\":\"%{count} years ago\"}},\"prompts\":{\"day\":\"Day\",\"hour\":\"Hour\",\"minute\":\"Minute\",\"month\":\"Month\",\"second\":\"Seconds\",\"year\":\"Year\"}},\"errors\":{\"format\":\"%{attribute} %{message}\",\"messages\":{\"accepted\":\"must be accepted\",\"array_too_short\":{\"one\":\"is too short (minimum at least 1 element)\",\"other\":\"is too short (minimum at least %{count} elements)\"},\"blank\":\"can\\'t be blank\",\"blank_for_modules\":\"Organization is miss-configured. The identifier is mandatory for the modules you have configured.\",\"collection_taken\":\"can\\'t have another collection of this type.\",\"confirmation\":\"doesn\\'t match %{attribute}\",\"custom_fields\":{\"options\":{\"missing_vocabulary\":\"Some column of type \\\\\"vocabulary\\\\\" has no value in \\\\\"dataSource\\\\\"\",\"wrong_column_type\":\"Some column does not belong to a recognized type. Types recognized: \\\\\"text\\\\\", \\\\\"integer\\\\\", \\\\\"float\\\\\", \\\\\"date\\\\\" y \\\\\"vocabulary\\\\\"\",\"wrong_custom_field_uids\":\"The configuration uids doesn\\'t existe or belongs to custom fields which doesn\\'t have a definition for progress\"}},\"empty\":\"can\\'t be empty\",\"equal_to\":\"must be equal to %{count}\",\"even\":\"must be even\",\"exclusion\":\"is reserved\",\"greater_than\":\"must be greater than %{count}\",\"greater_than_or_equal_to\":\"must be greater than or equal to %{count}\",\"inclusion\":\"is not included in the list\",\"invalid\":\"is invalid\",\"invalid_consultation_response\":\"Consultation couldn\\'t be saved. Please, review the responses and try again\",\"invalid_table_name\":\"Must start with a letter or an underscore; the rest can only contain letters, digits or underscores\",\"less_than\":\"must be less than %{count}\",\"less_than_or_equal_to\":\"must be less than or equal to %{count}\",\"model_invalid\":\"Validation failed: %{errors}\",\"not_a_number\":\"is not a number\",\"not_an_integer\":\"must be an integer\",\"not_found\":\"not found\",\"odd\":\"must be odd\",\"other_than\":\"must be other than %{count}\",\"page_as_homepage\":\"The changes to the page could not be saved because You can\\'t change the vibility of a page that is used as a homepage.\",\"present\":\"must be blank\",\"record_invalid\":\"Validation failed: %{errors}\",\"required\":\"must exist\",\"restrict_dependent_destroy\":{\"one\":\"Cannot delete record because a dependent %{record} exists\",\"other\":\"Cannot delete record because dependent %{record} exist\"},\"taken\":\"has already been taken\",\"too_long\":{\"one\":\"is too long (maximum is 1 character)\",\"other\":\"is too long (maximum is %{count} characters)\"},\"too_short\":{\"one\":\"is too short (minimum is 1 character)\",\"other\":\"is too short (minimum is %{count} characters)\"},\"wrong_length\":{\"one\":\"is the wrong length (should be 1 character)\",\"other\":\"is the wrong length (should be %{count} characters)\"}},\"template\":{\"body\":\"There were problems with the following fields:\",\"header\":{\"one\":\"1 error prohibited this %{model} from being saved\",\"other\":\"%{count} errors prohibited this %{model} from being saved\"}}},\"flash\":{\"actions\":{\"create\":{\"notice\":\"%{resource_name} was successfully created.\"},\"destroy\":{\"alert\":\"%{resource_name} could not be destroyed.\",\"notice\":\"%{resource_name} was successfully destroyed.\"},\"update\":{\"notice\":\"%{resource_name} was successfully updated.\"}}},\"gobierto_admin\":{\"activities\":{\"activities_list\":{\"header\":{\"action\":\"Action\",\"date\":\"Date\",\"ip\":\"IP\",\"recipient\":\"Recipient\",\"subject\":\"Subject\",\"user\":\"User\"}},\"index\":{\"title\":\"Activity log\"}},\"admin\":{\"invitation_acceptances\":{\"show\":{\"error\":\"This URL doesn\\'t seem to be valid\",\"success\":\"Signed in successfully\"}},\"invitations\":{\"create\":{\"error\":\"There was a problem sending the invitations\",\"success\":\"The invitations have been successfully sent\",\"success_with_errors\":\"Some invitations could not be delivered: %{email_addresses}.\"},\"form\":{\"placeholders\":{\"emails\":\"maria@hotmail.com, felipe@gmail.com\"},\"sites\":\"Allowed sites\",\"submit\":\"Send invitations\"},\"new\":{\"title\":\"Send invitations\"}},\"passwords\":{\"create\":{\"error\":\"The email address specified doesn\\'t seem to be valid\",\"success\":\"Please, check your inbox to get instructions\"},\"edit\":{\"error\":\"This URL doesn\\'t seem to be valid\",\"title\":\"Set your new password\"},\"edit_form\":{\"submit\":\"Change password\"},\"new\":{\"title\":\"Recover your password\"},\"new_form\":{\"placeholders\":{\"email\":\"fsanchez@gmail.com\"},\"submit\":\"Request recovery\"},\"update\":{\"error\":\"There was a problem changing your password\",\"success\":\"Signed in successfully\"}},\"settings\":{\"edit\":{\"password_block\":\"Password\",\"placeholders\":{\"email\":\"Email\",\"name\":\"Name\"},\"title\":\"Edit your data\"},\"update\":{\"error\":\"There was an error updating your data\",\"success\":\"Data updated successfully\"}}},\"admin_groups\":{\"admins\":{\"modal_index\":{\"add\":\"Add\",\"add_title\":\"Add user\",\"created_at\":\"Access granted\",\"delete\":\"Delete access\",\"email\":\"email\",\"user\":\"User\",\"users_with_access\":\"Users with access\"}},\"breadcrumb\":{\"admin_groups\":\"Groups\"},\"create\":{\"success\":\"Admins Group was successfully created\"},\"edit\":{\"title\":\"Permissions of group: %{name}\"},\"form\":{\"action_names\":{\"create_projects\":\"Create projects\",\"delete_projects_all\":\"Delete projects (all)\",\"delete_projects_assigned\":\"Delete projects (assigned)\",\"edit\":\"Edit\",\"edit_projects_all\":\"Edit projects (all)\",\"edit_projects_assigned\":\"Edit projects (assigned)\",\"edit_projects_permissions_all\":\"Edit project permissions (all)\",\"edit_projects_permissions_assigned\":\"Edit project permissions (assigned)\",\"manage_dashboards\":\"Manage dashboards\",\"manage_plans\":\"Manage plans\",\"moderate_projects_all\":\"Moderate projects (all)\",\"moderate_projects_assigned\":\"Moderate projects (assigned)\",\"publish_projects_all\":\"Publish projects (all)\",\"publish_projects_assigned\":\"Publish projects (assigned)\",\"update_projects_as_minor_change_all\":\"Save minor changes in projects (all)\",\"update_projects_as_minor_change_assigned\":\"Save minor changes in projects (assigned)\",\"view_dashboards\":\"View dashboards\",\"view_projects_all\":\"View projects (all)\",\"view_projects_assigned\":\"View projects (assigned)\"},\"actions\":\"Actions\",\"all\":\"All\",\"members\":{\"one\":\"There is an admin with this group.\",\"other\":\"There are %{count} admins with this group.\",\"zero\":\"This group doesn\\'t have admins.\"},\"modules_permissions\":\"Modules\",\"people\":\"People\",\"placeholders\":{\"name\":\"Global admins group\"},\"site_options_permissions\":\"Site\"},\"index\":{\"header\":{\"admin_group\":\"Group\"},\"new\":\"New\",\"title\":\"Groups\"},\"new\":{\"title\":\"New group\"},\"update\":{\"success\":\"Admins Group was successfully updated\"}},\"admin_mailer\":{\"invitation_instructions\":{\"bye\":\"Cheers\",\"click_link\":\"You have been invited to collaborate in Gobierto. Click the following link to create your account\",\"hi\":\"Hi\",\"subject\":\"You have been invitited to collaborate in Gobierto\"},\"reset_password_instructions\":{\"bye\":\"Cheers\",\"click_link\":\"Click in the following link to reset your password\",\"hi\":\"Hi\",\"subject\":\"Reset password instructions\"}},\"admin_unauthorized\":\"You do not have enough permissions to perform this action\",\"admins\":{\"create\":{\"success\":\"Admin was successfully created\"},\"edit\":{\"title\":\"Edit Admin\"},\"form\":{\"activity_block\":\"Activity log\",\"admin_groups_block\":\"Group\",\"authorization_level\":{\"disabled\":\"Disabled\",\"manager\":\"Manager\",\"regular\":\"Regular\"},\"password_block\":\"Password\",\"placeholders\":{\"email\":\"fgonzalez@gmail.com\",\"name\":\"Fernando Gonz\u00E1lez\"},\"sites_block\":\"Allowed sites\",\"sites_block_description\":\"This Admin has administration access to:\"},\"index\":{\"groups_and_permissions\":\"Groups and permissions\",\"header\":{\"admin\":\"Admin\",\"created_at\":\"Created\",\"email\":\"Email\",\"groups\":\"Groups\",\"last_sign_in_at\":\"Last sign in\",\"primary_api_token\":\"Primary API token\",\"role\":\"Role\"},\"new\":\"New Admin\",\"send_invitations\":\"Send invitations\",\"title\":\"Administrators\",\"users_section\":\"Users\",\"view_admin\":\"View Admin\"},\"new\":{\"title\":\"New Admin\"},\"show\":{\"admin_tokens\":\"Authorization tokens\",\"copy_to_clipboard\":\"Copy\",\"primary_api_token\":\"Primary token\"},\"update\":{\"success\":\"Admin was successfully updated\"}},\"api_tokens\":{\"api_token\":{\"primary\":\"Primary\"},\"edit\":{\"api_token\":\"API Token %{name}\"},\"form\":{\"placeholders\":{\"domain\":\"www.example.org\",\"name\":\"External apps Token\"},\"update_token\":\"Update Token\"},\"list\":{\"header\":{\"created_at\":\"Created at\",\"domain\":\"Domain\",\"name\":\"Name\",\"token\":\"Token\"},\"new\":\"New\",\"title\":\"API Tokens\"},\"new\":{\"api_token\":\"New API Token\"}},\"census\":{\"imports\":{\"create\":{\"error\":\"There was an error when importing your file. Please try again.\",\"success\":\"%{record_count} records have been imported\"},\"file_format_notes\":{\"instructions\":\"El archivo a cargar debe ser un CSV, sin fila de cabecera, con las columnas de datos que queramos que el usuario deba verficiar. Por ejemplo, si queremos que valide DNI, fecha de nacimiento y c\u00F3digo postal, deberemos preparar un fichero como este:\"},\"form\":{\"disable_with\":\"Loading...\",\"submit\":\"Load census file\"},\"new\":{\"final_notes\":\"se sustituir\u00E1n todos los registros, y si alg\u00FAn DNI de usuario verificado deja de estar presente, el usuario dejar\u00E1 de tener acceso\",\"import_status\":\"La verificaci\u00F3n de los usuarios se realiza contra el archivo de censo actualizado por \u00FAltima vez el %{created_at} por %{admin_name} (%{admin_email}). El archivo tiene %{imported_records} registros.\",\"title\":\"Census configuration\"}}},\"custom_fields_plugins\":{\"budgets\":{\"area\":\"Area\",\"assigned_amount\":\"Assigned\",\"budget_line\":\"Budget line\",\"custom\":\"Custom\",\"economic\":\"Economic\",\"full_amount\":\"Total\",\"functional\":\"Functional\",\"not_available\":\"Not avail.\",\"weight\":\"Weight\",\"year\":\"Year\"},\"common\":{\"custom\":\"Custom\",\"economic\":\"Economic\",\"functional\":\"Functional\"},\"data_grid\":{\"remove_rows\":\"Remove selected rows\",\"select_deselect_all\":\"Select / Deselect All\"},\"progress\":{\"progress\":\"Progress\"},\"table\":{\"remove_rows\":\"Remove selected rows\",\"select_deselect_all\":\"Select / Deselect All\"}},\"custom_sessions\":{\"ldap_strategy\":{\"form\":{\"identifier\":\"Identifier\",\"password\":\"Password\",\"submit\":\"Submit\"}}},\"gobierto_attachments\":{\"file_attachments\":{\"create\":{\"success_html\":\"Attachment created successfully. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eView the document\\\\u003c/a\\\\u003e.\"},\"destroy\":{\"success\":\"Attachment archived successfully\"},\"edit\":{\"title\":\"Edit document\"},\"form\":{\"file_constraints\":\"Attach document\",\"placeholders\":{\"description\":\"Document description\",\"name\":\"File name\",\"slug\":\"file-name\"}},\"index\":{\"add_new_attachment\":\"Add new document\",\"collections\":\"Collections\",\"created_at\":\"Created at\",\"header\":{\"collection\":\"Collection\",\"file_attachments\":\"Documents\"},\"latest_editions\":\"Latests editions\",\"new\":\"New\",\"title\":\"Documents\",\"updated_at\":\"Updated at\",\"view_collection\":\"View collection\"},\"new\":{\"title\":\"New document\"},\"recover\":{\"success\":\"Attachment recovered successfully\"},\"update\":{\"success_html\":\"Attachment updated successfully. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eView the document\\\\u003c/a\\\\u003e.\"}}},\"gobierto_budgets\":{\"feedback\":{\"index\":{\"answer1_0\":\"Yes\",\"answer1_1\":\"No\",\"answer2_0\":\"Few\",\"answer2_1\":\"Good\",\"answer2_2\":\"Too much\",\"budget\":\"Planned\",\"last\":\"Last\",\"total_feedback\":\"Total opinions\",\"understand\":\"Do you understand it?\",\"you_think\":\"You think\"}},\"options\":{\"index\":{\"comparison_compare_municipalities_desc\":\"Shows a table with specific municpalities (with data from presupuestos.gobierto.es - compare them there before including them)\",\"comparison_context_table_enabled_desc\":\"Show a table with context information with province, atuonomies and the state\",\"comparison_show_widget_desc\":\"Enable the acces to the Gobierto budgets comparison tool: presupuestos.gobierto.es\",\"comparison_tool_enabled_desc\":\"Enable comparison tools\",\"confirm_update_annual_data\":\"A background process will start to update files. Continue?\",\"elaboration\":\"Elaboration\",\"elaboration_desc1\":\"Enable budgets elaboration section\",\"elaboration_desc2_html\":\"\\\\u003cstrong\\\\u003eImportant:\\\\u003c/strong\\\\u003e it\\'s necessary to load elaboration data previously. Contact your administrator if necessary.\",\"feedback\":\"Micro-feedback\",\"feedback_desc\":\"Enable the option to allow visitios to give their feedback on budget lines\",\"feedback_emails_desc\":\"The feedback (opinions about budget lines) will be sent to this email\",\"indicators\":\"Indicators\",\"indicators_desc1\":\"Enable the section Indicators\",\"options\":\"Options\",\"providers\":\"Providers and Invoices\",\"providers_desc1\":\"Enable the section Providers and Invoices\",\"receipt\":\"Taxes receipt\",\"receipt_desc1\":\"Enable budgets taxes receipt section\",\"receipt_desc2_html\":\"\\\\u003cstrong\\\\u003eImportant:\\\\u003c/strong\\\\u003e it\\'s necessary to fill the JSON with the data.\",\"update_annual_data\":\"Generate budget lines by year files\"},\"update\":{\"error\":\"Settings couldn\\'t be saved: %{validation_errors}\",\"success\":\"Settings saved successfully\"},\"update_annual_data\":{\"success\":\"Process to generate files of budget lines by year launched\"}},\"shared\":{\"tabs\":{\"budgets\":\"Budgets\",\"feedback\":\"Opinions\",\"options\":\"Options\"}}},\"gobierto_calendars\":{\"calendar_configuration\":{\"edit\":{\"add_rule\":\"Create rule\",\"calendar_integration\":\"Calendar integration\",\"confirm_sync\":\"Are you sure?\",\"filter_events\":\"Filter events\",\"filter_events_desc\":\"When an event is imported...\",\"filter_events_label\":\"If the\",\"google_calendar\":\"Google Calendar\",\"ibm_notes\":\"IBM Notes\",\"labels\":{\"ibm_notes_pwd\":\"Password\",\"ibm_notes_url\":\"Calendar URL\",\"ibm_notes_usr\":\"IBM Notes account\",\"microsoft_exchange_pwd\":\"Password\",\"microsoft_exchange_url\":\"Calendar URL\",\"microsoft_exchange_usr\":\"Microsoft Exchange account\"},\"last_sync\":\"Last sync\",\"manage\":\"Manage calendar configuration\",\"microsoft_exchange\":\"Microsoft Exchange\",\"placeholders\":{\"filter_text\":\"Text to be filtered\",\"ibm_notes_url\":\"ex. https://example.com/mail/abc.nsf/api/calendar/events\",\"microsoft_exchange_url\":\"ex. https://example.com/ews/exchange.asmx\",\"username\":\"ex. someone85\"},\"remove_configuration\":\"Remove calendar configuration\",\"sync\":\"Sync now\",\"without_description\":\"Don\\'t import event description\"},\"gobierto_people_person_navigation\":{\"calendar_configuration\":\"Calendar configuration\"},\"google_calendar_fields\":{\"calendar_configured\":\"Currently this person has the following calendars integrated\",\"share_link\":\"Share this link with the person to allow Gobierto to read her public events from Google Calendar:\"},\"sync_calendars\":{\"success\":\"Synchronization done\"},\"update\":{\"success\":\"Settings updated successfully\"}},\"collections\":{\"index\":{\"add_new_event\":\"Add new event\",\"collections\":\"Calendars\",\"header\":{\"collection\":\"Calendar\",\"events\":\"Events\"},\"latest_editions\":\"Latest updated events\",\"new\":\"New\",\"title\":\"Calendars\",\"view_collection\":\"View collection\"}},\"events\":{\"attendees_form\":{\"header\":{\"charge\":\"Position\",\"name\":\"Name\",\"person\":\"Person\"},\"title\":\"Attendees\",\"view_person\":\"View person\"},\"create\":{\"success_html\":\"Event was successfully created. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eSee the event\\\\u003c/a\\\\u003e.\"},\"destroy\":{\"success\":\"Event was successfully archived\"},\"edit\":{\"title\":\"Edit event\"},\"form\":{\"placeholders\":{\"slug\":\"event\",\"title\":\"Event title\"},\"state\":{\"pending\":\"Pending\",\"published\":\"Published\"}},\"index\":{\"configuration\":\"Configuration\",\"header\":{\"date\":\"Date\",\"event\":\"Event\",\"location\":\"Location\",\"status\":\"Status\"},\"new\":\"New event\",\"past_events\":\"Past events\",\"pending_events\":\"Moderation pending\",\"published_events\":\"Published events\",\"upcoming_events\":\"Upcoming\",\"view_event\":\"View event\",\"visibility_level\":{\"archived\":\"Archived\",\"pending\":\"Draft\",\"published\":\"Published\"}},\"locations_form\":{\"header\":{\"address\":\"Address\",\"place\":\"Place\"},\"title\":\"Place\"},\"new\":{\"title\":\"New event\"},\"person_breadcrumb\":{\"back_to_collections\":\"\\\\u003c Back to agendas\"},\"recover\":{\"success\":\"Event was successfully recovered\"},\"update\":{\"success_html\":\"Event was successfully updated. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eSee the event\\\\u003c/a\\\\u003e.\"}}},\"gobierto_cms\":{\"file_attachments\":{\"index\":{\"title\":\"Attachments\"}},\"pages\":{\"create\":{\"success_html\":\"Page created successfully. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eView the page\\\\u003c/a\\\\u003e.\"},\"destroy\":{\"success\":\"Page archived successfully\"},\"edit\":{\"title\":\"Edit page\"},\"form\":{\"include_in_section\":\"Include in section\",\"new_section\":\"(New section)\",\"placeholders\":{\"slug\":\"about-this-web\",\"title\":\"Page title\"},\"section\":\"Section\",\"visibility_level\":{\"active\":\"Published\",\"draft\":\"Draft\"},\"without_parent\":\"(without parent)\"},\"index\":{\"add_new\":\"Add new\",\"collections\":\"Collections\",\"header\":{\"collection\":\"Collection\",\"pages\":\"Pages\",\"section\":\"Section\"},\"latest_editions\":\"Latests editions\",\"new\":\"New\",\"sections\":\"Sections\",\"title\":\"CMS\",\"view_collection\":\"View collection\",\"view_section\":\"View section\"},\"new\":{\"title\":\"New page\"},\"recover\":{\"success\":\"The page has been successfully recovered\"},\"update\":{\"success_html\":\"Page updated successfully. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eView the page\\\\u003c/a\\\\u003e.\"}},\"sections\":{\"create\":{\"success\":\"Section created successfully.\"},\"edit_modal\":{\"title\":\"Edit section\"},\"form\":{\"placeholders\":{\"slug\":\"about-this-section\",\"title\":\"Section title\"}},\"index\":{\"header\":{\"pages\":\"Sections\",\"title\":\"Section\"},\"new\":\"New\",\"title\":\"Sections\",\"view\":\"View section\"},\"new_modal\":{\"title\":\"New section\"},\"pages_filter\":{\"page_help\":\"Drag and drop on the left side to place this page in the menu\"},\"show\":{\"collapse\":\"Collapse everything\",\"configuration\":\"Configuration\",\"delete_element\":\"Remove item from menu\",\"expand\":\"Expand all\",\"help\":\"Configure the elements in your menu. Drag from the right panel to the menu on the left\",\"last_edited_pages\":\"Last edited pages\",\"placeholders\":{\"search\":\"Enter the title of the page to search\"},\"sections\":\"Sections\",\"select_page\":\"Select page to include in the section\",\"view\":\"View section\"},\"update\":{\"success\":\"Section updated successfully.\"}}},\"gobierto_common\":{\"collections\":{\"check_container_presence\":{\"container_not_found\":\"The resource the collection belongs to couldn\\'t be found\"},\"create\":{\"success\":\"Collection was successfully created.\"},\"edit_modal\":{\"title\":\"Edit collection\"},\"form\":{\"placeholders\":{\"slug\":\"about-this-collection\",\"title\":\"Collection name\"}},\"index\":{\"collections\":\"Collections\",\"header\":{\"collection\":\"Title\",\"pages\":\"Pages\"},\"latest_editions\":\"Latests editions\",\"new\":\"New\",\"title\":\"CMS\",\"view_collection\":\"See collection\"},\"new_modal\":{\"title\":\"New collection\"},\"show\":{\"configuration\":\"Configuration\",\"file_attachments\":{\"created_at\":\"Created at\",\"file_name\":\"Filename\",\"view\":\"View document\"},\"new_attachment\":\"New\",\"new_page\":\"New\",\"pages\":{\"created_at\":\"Created at\",\"public\":\"Public\",\"published_on\":\"Published on\",\"updated_at\":\"Updated at\",\"view\":\"View page\",\"visibility_level\":{\"active\":\"Published\",\"archived\":\"Archived\",\"draft\":\"Draft\"}}},\"update\":{\"success\":\"Collection was successfully updated.\"}},\"content_blocks\":{\"create\":{\"success\":\"Content block was successfully created\"},\"destroy\":{\"success\":\"Content block was successfully deleted\"},\"edit\":{\"title\":\"Edit block\"},\"form\":{\"add_child\":\"Add column\",\"fields\":\"Columns\",\"title\":\"Block name\"},\"new\":{\"title\":\"Add block\"},\"update\":{\"success\":\"Content block was successfully updated\"}},\"custom_fields\":{\"custom_fields\":{\"create\":{\"success\":\"Custom field created correctly\"},\"date_options\":{\"date\":\"Date\",\"datetime\":\"Date and time\",\"type\":\"Type\"},\"destroy\":{\"failed\":\"There was an error that prevented the deletion of the custom field\",\"success\":\"Custom field successfully deleted\"},\"edit\":{\"instance_title\":\"Edit %{field_name} of %{instance_name}\",\"title\":\"Edit %{name}\"},\"form\":{\"confirm\":\"Are you sure?\",\"crop\":\"Crop\",\"multiple\":\"Multiple\",\"type\":\"Content options\"},\"index\":{\"instance_title\":\"Custom fields of %{instance_name}\",\"localized_custom_fields\":\"Translatable fields\",\"new\":\"Add new field\",\"not_localized_custom_fields\":\"Non-translatable fields\",\"title\":\"Custom fields\"},\"new\":{\"instance_title\":\"New field of %{instance_name}\",\"title\":\"New field\"},\"new_option\":{\"cancel_new_option\":\"Cancel\",\"create\":\"Create option\",\"new\":\"New option\"},\"numeric_options\":{\"currency\":\"Currency\",\"generic\":\"Generic\",\"unit_type\":\"Unit type\"},\"options_form\":{\"add_option\":\"Add option\"},\"plugin\":{\"budgets\":\"Budgets\",\"progress\":\"Progress\",\"table\":\"Table\",\"type\":\"Type\"},\"plugin_configuration_form\":{\"configuration\":\"Configuration\"},\"update\":{\"success\":\"Custom field updated correctly\"},\"vocabulary_select\":{\"vocabulary\":\"Options vocabulary\"},\"vocabulary_type_select\":{\"multiple_select\":\"Multiple select\",\"single_select\":\"Single select\",\"tags\":\"Tags\",\"type\":\"Type\"}},\"forms\":{\"new_gallery_image\":{\"add_item\":\"Add image\",\"cancel_new_item\":\"Cancel\"}},\"module_resources\":{\"index\":{\"custom_fields_for_instances_of\":\"Custom fields for instances of %{name}\",\"empty\":\"Currently there is no model with custom fields enabled\"}}},\"dynamic_content\":{\"form\":{\"add_child\":\"Add new record\",\"add_content_block\":\"Add new block\",\"add_record\":\"Add\",\"attachment\":\"Attachment\",\"attachment_file\":\"Attachment file\",\"cancel_record\":\"Cancel\",\"delete_content_block\":\"Delete block\",\"delete_content_block_confirm\":\"Are you sure you want to delete this block?\",\"download_attachment\":\"Download attachment\",\"edit_content_block\":\"Edit\",\"remove_attachment\":\"Remove attachment\",\"save_record\":\"Save\"}},\"ordered_terms\":{\"create\":{\"success\":\"Term created successfully.\"},\"destroy\":{\"destroy_failed\":\"The term couldn\\'t be deleted: %{validation_errors}\",\"success\":\"Term deleted successfully.\"},\"edit_modal\":{\"title\":\"Edit %{term}\"},\"form\":{\"placeholders\":{\"description\":\"Term description\",\"external_id\":\"ID001\",\"name\":\"Term name\",\"slug\":\"term\"}},\"index\":{\"collapse_all\":\"Collapse all\",\"explore\":\"Explora\",\"new\":\"New\",\"open_all\":\"Open all\",\"title\":\"Terms of %{vocabulary}\"},\"new_modal\":{\"title\":\"New term\"},\"terms_tree\":{\"delete_confirm\":\"Are you sure? This operation can not be undone\"},\"update\":{\"success\":\"Term updated successfully.\"}},\"terms\":{\"create\":{\"success\":\"Term created successfully.\"},\"destroy\":{\"destroy_failed\":\"Term couldn\\'t be deleted.\",\"success\":\"Term deleted successfully.\"},\"edit\":{\"edit\":\"Edit %{term}\"},\"form\":{\"placeholders\":{\"description\":\"The horse is a herbivorous mammal\",\"name\":\"Horse\",\"slug\":\"reino-animal-caballo\"}},\"index\":{\"delete_confirm\":\"Are you sure? This operation can not be undone\",\"header\":{\"description\":\"Description\",\"level\":\"Level\",\"name\":\"Name\",\"parent\":\"Parent\"},\"new\":\"New\",\"title\":\"Terms of %{vocabulary}\"},\"new\":{\"new\":\"New term\"},\"update\":{\"success\":\"Term updated successfully.\"}},\"vocabularies\":{\"create\":{\"success\":\"Vocabulary created successfully.\"},\"destroy\":{\"destroy_failed\":\"Vocabulary couldn\\'t be deleted because it\\'s being used\",\"success\":\"Vocabulary deleted successfully.\"},\"edit\":{\"edit\":\"Edit %{vocabulary}\"},\"edit_modal\":{\"title\":\"Edit %{vocabulary}\"},\"form\":{\"placeholders\":{\"name\":\"Animal kingdom\",\"slug\":\"animal_kingdom\"}},\"index\":{\"delete_confirm\":\"Are you sure? This operation can not be undone\",\"header\":{\"name\":\"Subject\",\"terms\":\"Terms\"},\"new\":\"New\",\"title\":\"Vocabularies\",\"view_vocabulary\":\"See terms\"},\"new\":{\"new\":\"New Vocabulary\"},\"new_modal\":{\"title\":\"New Vocabulary\"},\"show\":{\"created_at\":\"Created at\",\"terms\":\"Terms\",\"terms_count\":\"%{count} terms\"},\"update\":{\"success\":\"Vocabulary updated successfully.\"}}},\"gobierto_core\":{\"site_templates\":{\"create\":{\"success\":\"Template was successfully created.\"},\"destroy\":{\"success\":\"Template was successfully deleted.\"},\"update\":{\"success\":\"Template was successfully updated.\"}},\"templates\":{\"edit\":{\"preview\":\"Preview\",\"reset\":\"Reset\",\"reset_title\":\"Discard saved changes, and return to the original template (be careful, you will not be able to recover the template that you have customized)\",\"save\":\"Save\"},\"index\":{\"edit_templates\":\"Edit templates\"}}},\"gobierto_dashboards\":{\"dashboards\":{\"destroy\":{\"success\":\"Dashboard deleted correctly.\"},\"list_modal\":{\"add\":\"Add\",\"new\":\"Do you need to create a new dashboard?\",\"no_dashboards\":\"No dashboards\",\"title\":\"Select the dashboard to include this indicator\"}}},\"gobierto_data\":{\"configuration\":{\"settings\":{\"edit\":{\"api_settings\":\"API settings\",\"db_config_placeholder\":\"{\\\\\"pool\\\\\":5, \\\\\"adapter\\\\\":\\\\\"postgresql\\\\\", \\\\\"database\\\\\":\\\\\"gobierto_test\\\\\", \\\\\"encoding\\\\\":\\\\\"unicode\\\\\", \\\\\"password\\\\\":\\\\\"gobierto\\\\\", \\\\\"username\\\\\":\\\\\"gobierto\\\\\"}\",\"frontend\":\"Front-end\",\"frontend_enabled\":\"Visible\",\"title\":\"Configuration\",\"update\":\"Update\"},\"title\":\"Preferences\",\"update\":{\"success\":\"Configuration stored successfully\"}}},\"datasets\":{\"create\":{\"success\":\"Dataset created correctly.\"},\"destroy\":{\"success\":\"Dataset deleted correctly.\"},\"form\":{\"placeholders\":{\"name\":\"Population\",\"slug\":\"population\"}},\"index\":{\"header\":{\"name\":\"Name\",\"status\":\"Status\",\"table_name\":\"Table name\"},\"new\":\"New\",\"title\":\"Datasets\",\"view_dataset\":\"See dataset\"},\"new\":{\"title\":\"New dataset\"},\"update\":{\"success\":\"Dataset updated correctly.\"}}},\"gobierto_investments\":{\"projects\":{\"create\":{\"success\":\"Project created correctly.\"},\"destroy\":{\"success\":\"Project deleted correctly.\"},\"form\":{\"placeholders\":{\"external_id\":\"ID001\",\"title\":\"Sports center\"}},\"index\":{\"header\":{\"external_id\":\"External ID\",\"title\":\"Title\"},\"new\":\"New\",\"title\":\"Projects\",\"view_project\":\"See project\"},\"new\":{\"title\":\"New project\"},\"update\":{\"success\":\"Project updated correctly.\"}}},\"gobierto_observatory\":{\"configuration\":{\"settings\":{\"edit\":{\"title\":\"Observatory configuration\",\"update\":\"Update\"},\"title\":\"Preferences\",\"update\":{\"error\":\"There was a problem when saving configuration: %{validation_errors}\",\"success\":\"Configuration stored successfully\"}}}},\"gobierto_people\":{\"configuration\":{\"settings\":{\"edit\":{\"agendas\":\"Agendas\",\"blogs\":\"Blogs\",\"departments\":\"Departments\",\"gifts\":\"Gifts\",\"interest_groups\":\"Interest groups\",\"invitations\":\"Invitations\",\"officials\":\"Officials\",\"placeholders\":{\"home_text_ca\":\"Home text Catalan\",\"home_text_en\":\"Home text English\",\"home_text_es\":\"Home text Spanish\"},\"political_groups_vocabulary\":\"Political groups vocabulary\",\"statements\":\"Statements\",\"submodules_enabled\":\"Enabled submodules\",\"trips\":\"Trips\",\"update\":\"Update\"},\"update\":{\"error\":\"An error occured while saving these settings\",\"success\":\"Settings updated successfully\"}},\"title\":\"Configuration\"},\"people\":{\"create\":{\"success_html\":\"Person was successfully created. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eSee the person\\\\u003c/a\\\\u003e.\"},\"edit\":{\"title\":\"Edit person\"},\"form\":{\"avatar_file_constraints\":\"User avatar (500x500 file)\",\"bio_file_constraints\":\"Attach file (PDF)\",\"category\":{\"executive\":\"Executive\",\"politician\":\"Politician\"},\"crop\":\"Crop\",\"party\":{\"government\":\"Government Team\",\"opposition\":\"Opposition\"},\"placeholders\":{\"charge\":\"Alcalde\",\"email\":\"Email\",\"name\":\"Rafael Garc\u00EDa\"}},\"index\":{\"configuration\":\"Configuration\",\"drag_to_sort\":\"Drag to sort\",\"header\":{\"charge\":\"Position\",\"events\":\"Events\",\"person\":\"Person\",\"posts\":\"Posts\",\"statements\":\"Statements\",\"status\":\"Status\"},\"new\":\"New person\",\"no_permissions\":\"You don\\'t have permissions to edit this person. If you need to edit, ask your administrator\",\"title\":\"People\",\"view_person\":\"View person\",\"visibility_level\":{\"active\":\"Published\",\"draft\":\"Draft\"}},\"navigation\":{\"agenda\":\"Agenda\",\"person\":\"Person\",\"posts\":\"Blog\",\"statements\":\"Statements\"},\"new\":{\"title\":\"New person\"},\"person_events\":{\"index\":{\"title\":\"Agenda\"}},\"person_posts\":{\"create\":{\"success_html\":\"Post was successfully created. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eSee the post\\\\u003c/a\\\\u003e.\"},\"edit\":{\"title\":\"Edit post\"},\"form\":{\"placeholders\":{\"tags\":\"personal, about me, my career\",\"title\":\"About me\"}},\"index\":{\"header\":{\"date\":\"Date\",\"status\":\"Status\",\"tags\":\"Tags\",\"title\":\"Title\"},\"new\":\"New post\",\"title\":\"Blog\",\"view_post\":\"View post\",\"visibility_level\":{\"active\":\"Published\",\"draft\":\"Draft\"}},\"new\":{\"title\":\"New post\"},\"update\":{\"success_html\":\"Post was successfully updated. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eSee the post\\\\u003c/a\\\\u003e.\"}},\"person_statements\":{\"create\":{\"success_html\":\"Statement was successfully created. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eSee the statement\\\\u003c/a\\\\u003e.\"},\"edit\":{\"title\":\"Edit statement\"},\"form\":{\"placeholders\":{\"title\":\"Statement of assets and activities\"}},\"index\":{\"header\":{\"date\":\"Date\",\"statement\":\"Statement\",\"status\":\"Estat\"},\"new\":\"New statement\",\"title\":\"Statements\",\"view_statement\":\"View statement\",\"visibility_level\":{\"active\":\"Published\",\"draft\":\"Draft\"}},\"new\":{\"title\":\"New statement\"},\"update\":{\"success_html\":\"Statement was successfully updated. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eSee the statement\\\\u003c/a\\\\u003e.\"}},\"update\":{\"success_html\":\"Person was successfully updated. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eSee the person\\\\u003c/a\\\\u003e.\"}},\"settings\":{\"title\":\"Settings\"}},\"gobierto_plans\":{\"admin_mailer\":{\"project_attributes_changed\":{\"bye\":\"Best regards\",\"edition_change\":\"content\",\"hi\":\"Hello\",\"intro_html\":\"%{author_name} updated %{updates_list} in the project %{project_link} in plan %{plan_title}.\",\"minor_change_notice\":\"The change has been saved as minor so no new version has been created.\",\"moderation_stage_change\":\"moderation status to %{value}\",\"subject\":\"A project in plan %{plan_title} of %{site_name} has been modified\",\"subject_with_changes\":\"A project in plan %{plan_title} of %{site_name} has been modified to %{changes}\",\"visibility_level_change\":\"publication status to %{value}\",\"visibility_levels\":{\"draft\":\"Not published\",\"published\":\"Published\"}},\"project_created\":{\"bye\":\"Best regards\",\"hi\":\"Hello\",\"intro_html\":\"%{author_name} has created a new project %{project_link} in the plan %{plan_title}\",\"subject\":\"A project has been created in the plan %{plan_title} of %{site_name}\"},\"project_deleted\":{\"bye\":\"Best regards\",\"hi\":\"Hello\",\"intro_html\":\"%{author_name} has deleted the project %{project_name} from the plan %{plan_link}\",\"subject\":\"A project has been deleted from the plan %{plan_title} of %{site_name}\"}},\"categories\":{\"calculated_headers\":{\"items\":\"Items\",\"progress\":\"Progress\"},\"create\":{\"success\":\"Category created successfully.\"},\"destroy\":{\"destroy_failed\":\"You can\\'t delete a category while it has associated projects or other elements.\",\"success\":\"Category deleted successfully.\"},\"index\":{\"progress_excluded_nodes_explanation\":\"Some projects have been excluded from the calculation because they have one of the following excluded statuses: %{statuses}\"},\"plan_summary\":{\"global_progress\":\"Global progress\",\"projects\":\"Projects\"},\"update\":{\"success\":\"Category updated successfully.\"}},\"dashboards\":{\"index\":{\"headers\":{\"status\":\"Visibility\",\"title\":\"Title\",\"updated\":\"Updated\"},\"new\":\"New\",\"visibility_level\":{\"active\":\"Public\",\"draft\":\"Private\"}}},\"plan_types\":{\"create\":{\"success\":\"Plan type created successfully.\"},\"destroy\":{\"has_items\":\"You can\\'t archive a type of plan while having associated elements.\",\"success\":\"Plan type archived successfully\"},\"edit\":{\"title\":\"Edit plan type\"},\"form\":{\"placeholders\":{\"name\":\"Plan type name\",\"slug\":\"about-this-type-of-plan\"}},\"index\":{\"delete\":\"Delete\",\"header\":{\"type\":\"Type\"},\"new\":\"New\",\"title\":\"Plan types\"},\"new\":{\"title\":\"New plan type\"},\"update\":{\"success\":\"Plan type updated successfully.\"}},\"plans\":{\"create\":{\"success_html\":\"Plan created successfully. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eView the plan\\\\u003c/a\\\\u003e.\"},\"delete_contents\":{\"success\":\"Plan projects has been successfully deleted\",\"term_deletion_failed_html\":\"The term \\\\\"%{term}\\\\\" of \\\\\"%{vocabulary}\\\\\" vocabulary can\\'t be deleted: %{message}\"},\"destroy\":{\"success\":\"Plan archived successfully.\"},\"edit\":{\"title\":\"Configuration\"},\"form\":{\"delete_contents\":\"Delete projects of this plan\",\"delete_contents_confirm\":\"Confirm you want to delete projects from this plan\",\"export_csv\":\"Export to CSV\",\"import_csv\":\"Import from CSV\",\"indicators\":\"Indicators\",\"placeholders\":{\"configuration_data\":\"{ \\\\\"open_node\\\\\": true }\",\"css\":\".gobierto_planification section.level_0 .cat_1 { background-color: rgba(0, 191, 255, 0.95); }\",\"footer\":\"Plan footer\",\"introduction\":\"Plan introduction\",\"slug\":\"about-this-plan\",\"title\":\"Plan title\",\"year\":2018},\"projects\":\"Projects\",\"publish_last_version_automatically\":\"Publish new versions of projects automatically\"},\"import_csv\":{\"defaults\":{\"category\":{\"one\":\"item of level %{level}\",\"other\":\"items of level %{level}\"},\"project\":{\"one\":\"project\",\"other\":\"projects\"}},\"latest_update\":\"Last updated: %{datetime}\",\"no_data\":\"No data loaded yet\",\"there_are\":\"There are %{info}\",\"title\":\"Import CSV\"},\"import_csv_form\":{\"confirm_import\":\"Are you sure?\",\"custom_fields_table_plugin\":\"Custom fields (table plugin)\",\"disable_with\":\"Loading...\",\"more_info_html\":\"For more information, visit the documentation \\\\u003ca href=\\\\\"%{url}\\\\\" target=\\\\\"_blank\\\\\"\\\\u003eImportar datos de un plan\\\\u003c/a\\\\u003e.\",\"plan_content\":\"Plan content\",\"submit\":\"Import from CSV file\",\"vocabulary_used_by_other_plans\":\"The vocabulary configured for this plan is already configured for someone else. Please create a new vocabulary for this plan or remove it from the configuration of the other plans using it, since their data would be deleted with the import.\",\"warning\":\"\\\\u003cstrong\\\\u003eWarning\\\\u003c/strong\\\\u003e When importing from a CSV file, if the plan is empty, terms will be added to the vocabularies associated with categories and custom fields as they are found, but if the plan already contains data, since it\\'s an update, errors will be produced for the terms not found in the respective vocabularies.\"},\"import_data\":{\"missing_file\":\"Please, choose a file for the import.\",\"success_html\":\"Data imported successfully. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eView the plan\\\\u003c/a\\\\u003e.\"},\"index\":{\"header\":{\"elements\":\"Elements\",\"status\":\"Status\",\"title\":\"Title\",\"type\":\"Type\",\"year\":\"Year\"},\"new\":\"New\",\"title\":\"Plans\",\"types\":\"Types\",\"view_plan\":\"View plan\",\"visibility_level\":{\"draft\":\"Draft\",\"published\":\"Published\"}},\"new\":{\"title\":\"New plan\"},\"recover\":{\"success\":\"Plan has been successfully recovered.\"},\"update\":{\"success_html\":\"Plan updated successfully. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eView the plan\\\\u003c/a\\\\u003e.\"}},\"projects\":{\"create\":{\"success\":\"Project created correctly.\"},\"destroy\":{\"success\":\"Project deleted correctly.\"},\"filter_form\":{\"author\":\"Author\",\"category\":\"Category\",\"clear_filters\":\"Clear filters\",\"filter\":\"Filter\",\"interval\":\"Date interval\",\"progress\":\"Progress\",\"search\":\"Search...\",\"status\":\"Status\",\"submit\":\"Filter\"},\"filters_row\":{\"all\":\"All\",\"moderation_stage\":\"Moderation\",\"moderation_stage_value\":{\"approved\":\"Approved\",\"blank\":\"Without moderation\",\"in_review\":\"Under review\",\"rejected\":\"Rejected\",\"sent\":\"Sent\",\"unsent\":\"Not sent\"},\"total\":\"Total\",\"versions_visibility_level\":\"Publication\",\"versions_visibility_level_value\":{\"draft\":\"Draft\",\"published_up_to_date\":\"Published up to date\",\"published_with_unpublished_changes\":\"Published with unpublished changes\"}},\"find_versioned_project\":{\"unavailable_version\":\"Unavailable version.\"},\"form\":{\"button\":{\"add_dashboard\":\"Add to dashboard\"},\"placeholders\":{\"name\":\"Project title\"}},\"index\":{\"headers\":{\"progress\":\"Progress\",\"project\":\"Project\",\"status\":\"Status\",\"updated\":\"Updated\",\"visibility_level\":\"Publication\"},\"new\":\"New\",\"title\":\"Projecs of %{name}\",\"view\":\"View item\"},\"new\":{\"title\":\"New project\"},\"publish\":{\"confirm\":\"You are going to publish this project, so any user will be able to see it in the front-end.\",\"error\":\"Project couldn\\'t be published.\",\"success\":\"Project published correctly.\"},\"send\":{\"confirm\":\"You are going to send this project to be validated by a moderator.\"},\"unpublish\":{\"error\":\"Project couldn\\'t be unpublished.\",\"success\":\"Project unpublished correctly.\"},\"update\":{\"moderation_reset\":\"Because you have modified the project and do not have moderation permissions, its status has been moved to Not sent.\",\"no_changes\":\"No changes have been made to the project. The current version has been maintained.\",\"success\":\"Project updated correctly.\",\"suggest_unpublish_html\":\"The project is not approved but still published. \\\\u003ca rel=\\\\\"nofollow\\\\\" data-method=\\\\\"post\\\\\" href=\\\\\"%{url}\\\\\"\\\\u003eUnpublish\\\\u003c/a\\\\u003e.\"}},\"shared\":{\"navigation\":{\"configuration_tab\":\"Configuration\",\"dashboards_tab\":\"Dashboards\",\"plan_terms_tab\":\"Plan\",\"projects_tab\":\"Projects\"}}},\"gobierto_visualizations\":{\"configuration\":{\"settings\":{\"edit\":{\"title\":\"Visualizations configuration\",\"update\":\"Update\"},\"title\":\"Preferences\",\"update\":{\"error\":\"There was a problem when saving configuration: %{validation_errors}\",\"success\":\"Configuration stored successfully\"}}}},\"layouts\":{\"application\":{\"admin_dropdown\":{\"account\":\"Account\",\"sign_out\":\"Sign out\"},\"calendars\":\"Calendars\",\"cms\":\"CMS\",\"collapse_menu\":\"Collapse menu\",\"custom_fields\":\"Custom fields\",\"dirty_forms\":{\"message\":\"You have unsaved changes. Are you sure you want to leave this page?\"},\"edit_site\":\"Customize site\",\"file_attachments\":\"Documents\",\"global\":\"General\",\"hey_admin\":\"Hey, %{admin_name}\",\"manage_sites\":\"Manage sites\",\"modules\":{\"budgets\":\"Budgets\",\"data\":\"Data\",\"investments\":\"Investments\",\"observatory\":\"Observatory\",\"people\":\"Officers and Agendas\",\"plans\":\"Plans\",\"visualizations\":\"Visualizations\"},\"notifications\":\"Notifications\",\"site_network\":\"Network\",\"templates\":\"Templates\",\"users\":\"Users\",\"view_documentation\":\"View documentation\",\"view_item\":\"View item\",\"view_site\":\"View site\",\"vocabularies\":\"Vocabularies\"}},\"module_helper\":{\"not_enabled\":\"You are not authorized to perform this action\"},\"session_helper\":{\"already_signed_in\":\"You are already signed in\",\"not_authorized\":\"You are not authorized to perform this action\",\"not_signed_in\":\"We need you to sign in to continue\"},\"sessions\":{\"create\":{\"error\":\"The data you entered doesn\\'t seem to be valid. Please try again.\",\"success\":\"Signed in successfully\"},\"destroy\":{\"success\":\"Signed out successfully\"},\"form\":{\"email\":\"Email\",\"password\":\"Password\",\"submit\":\"Send\"},\"new\":{\"forgot_your_password\":\"Forgot your password?\",\"title\":\"Log in\"}},\"shared\":{\"admin_widget_attachment\":{\"add_new_document\":\"Add new document\",\"attachments\":\"Attachments\",\"copy_to_clipboard\":\"Copy URL\",\"description\":\"Description\",\"document\":\"Document\",\"document_title\":\"Document title\",\"drag_document_here\":\"Drag and drop the document here\",\"edit_document\":\"Edit document\",\"include_file\":\"Include file\",\"include_in_text\":\"Include file in the text\",\"latest_documents\":\"Recent documents\",\"no_docs\":\"There are no files\",\"or\":\"or\",\"save\":\"Save\",\"search\":\"Search\",\"select_file\":\"Chose a file\"},\"archive\":{\"confirm\":\"Are you sure you want to archive this element? It won\\'t show on the front end neither on lists like this. You will be able to recover it\",\"element\":\"Archive this element\",\"elements\":\"Archived elements\"},\"draft\":\"Draft\",\"form_locale_switchers\":{\"define_content_in_locale\":\"Define the content in %{locale_name} version\",\"translate\":\"Translate\"},\"moderation_save_widget\":{\"change_moderation_status\":\"Change moderation status\",\"confirm\":\"Are you sure?\",\"confirm_moderation_blocked_update\":\"Are you sure? If you save changes to this project, the status will be updated to Unsent.\",\"edit_version\":\"Editing version\",\"last_versions\":\"Last versions\",\"minor_change\":\"Minor change (does not save version)\",\"moderation\":\"Moderation\",\"moderation_info\":{\"new\":\"After saving your content, it can be sent to moderation.\",\"publicable\":\"Click on Publish to make this version publicly visible.\",\"publicable_html\":\"Click on Publish to make this version publicly visible.\",\"published\":\"Current version is the published one.\",\"published_html\":\"Current version is the published one. \\\\u003ca rel=\\\\\"nofollow\\\\\" data-method=\\\\\"post\\\\\" href=\\\\\"%{url}\\\\\"\\\\u003eUnpublish\\\\u003c/a\\\\u003e.\",\"rejected\":\"Version rejected.\",\"sent\":\"Your content has been sent for review. You will receive a notification if it is approved or you are asked for changes.\",\"unsent\":\"When your content is ready to be reviewed by a moderator, click on Send.\"},\"moderation_status\":{\"approved\":\"Approved\",\"in_review\":\"Under review\",\"rejected\":\"Rejected\",\"sent\":\"Sent\",\"unsent\":\"Not sent\"},\"new_version\":\"New (not saved)\",\"preview\":\"Preview\",\"previous_versions\":\"Previous versions\",\"publication_status\":{\"approved\":\"Published\",\"not_published\":\"Not published\"},\"publish\":\"Publish\",\"publish_last_version_automatically\":\"Publish this version automatically\",\"publish_status\":\"Status\",\"published_version\":\"Published version\",\"published_version_blank\":\"not published yet\",\"save\":\"Save\",\"see_all\":\"see all\",\"send\":\"Send\",\"unpublish\":\"Unpublish\"},\"module\":\"Module\",\"recover\":{\"confirm\":\"If you recover an element, it will be listed again\",\"element\":\"Recover element\"},\"resource_admin_permissions_button\":{\"permissions\":\"Permissions\"},\"save_widget\":{\"save\":\"Save\",\"visibility_level\":{\"active\":\"Published\",\"draft\":\"Draft\",\"published\":\"Published\"}}},\"sites\":{\"create\":{\"success\":\"Site was successfully created\"},\"destroy\":{\"success\":\"Site was successfully deleted\"},\"edit\":{\"title\":\"Customize site\"},\"form\":{\"admin_authentication_modules\":\"Authentication strategies for admins\",\"authentication_modules\":\"Authentication strategies for users\",\"hints\":{\"domain\":{\"a_record\":\"A record to %{target}\",\"cname_record\":\"CNAME record to %{target}\",\"if_domain\":\"If it is a domain\",\"if_subdomain\":\"If it is a subdomain\",\"instructions\":\"Important: this domain must be created to ensure the site works perfectly.\"},\"organization_id_html\":\"You can search for the code \\\\u003ca href=\\\\\"https://populatetools.github.io/ine-places/places.html\\\\\" target=\\\\\"_blank\\\\\"\\\\u003ein this table\\\\u003c/a\\\\u003e.\"},\"modules_enabled\":\"Modules enabled for this site\",\"password\":\"Password\",\"placeholders\":{\"domain\":\"gobierto.burjassot.es\",\"google_analytics_id\":\"UA-000000-01\",\"name\":\"Ayuntamiento de Burjassot\",\"organization_name\":\"Burjassot\",\"populate_data_api_token\":\"API Token Populate Data\",\"reply_to_email\":\"contact@email.com\",\"title\":\"Transparencia y Participaci\u00F3n\"},\"registration\":\"Users registration\",\"registration_disabled\":\"Disable registration (only hides links to registration/login)\",\"username\":\"Username\",\"visibility_level\":{\"active\":\"Published\",\"draft\":\"Draft\"}},\"index\":{\"configuration\":\"Configuration\",\"header\":{\"created_at\":\"Created\",\"domain\":\"Domain\",\"site\":\"Site\",\"status\":\"Status\"},\"new\":\"New site\",\"title\":\"Sites\",\"view_site\":\"View site\"},\"new\":{\"title\":\"New site\"},\"pages\":\"Pages\",\"sections\":\"Sections\",\"update\":{\"success\":\"Site was successfully updated\"}},\"users\":{\"edit\":{\"title\":\"Edit User\"},\"form\":{\"change_password\":\"Change password\",\"password_block\":\"Password\",\"placeholders\":{\"email\":\"fgonzalez@gmail.com\",\"name\":\"Fernando Gonz\u00E1lez\"},\"resend_welcome_email\":\"Resend welcome email\",\"resend_welcome_email_notes\":\"including a link to set a new password\"},\"index\":{\"admins_section\":\"Administrators\",\"census_configuration\":\"Census configuration\",\"header\":{\"created_at\":\"Created\",\"email\":\"Email\",\"last_sign_in_at\":\"Last sign in\",\"user\":\"User\",\"verified\":\"Verified\"},\"title\":\"Users\",\"users\":{\"one\":\"%{count} user\",\"other\":\"%{count} users\"},\"users_confirmed\":{\"one\":\"%{count}% confirmed\",\"other\":\"%{count}% confirmed\"},\"users_verified\":{\"one\":\"%{count}% verified\",\"other\":\"%{count}% verified\"},\"view_user\":\"View User\"},\"passwords\":{\"create\":{\"error\":\"There was a problem changing your password\",\"success\":\"User password was successfully updated\"},\"form\":{\"submit\":\"Send\"},\"new\":{\"title\":\"Change user password\"}},\"session_information\":{\"created_at\":\"Created\",\"last_sign_in\":\"Last sign in\",\"site\":\"Site\"},\"update\":{\"success\":\"User was successfully updated\"},\"welcome_messages\":{\"create\":{\"error\":\"The welcome message could not be sent. Please try again.\",\"success\":\"The welcome message has been sent\"}}},\"welcome\":{\"index\":{\"title\":\"Home\"}}},\"gobierto_attachments\":{\"events\":{\"gobierto_attachments_attachment_created\":\"Attachment created\",\"gobierto_attachments_attachment_updated\":\"Attachment updated\"}},\"gobierto_budgets\":{\"budget_lines\":{\"explorer\":{\"examples\":\"Examples\",\"expenses\":\"Expenses\",\"explore_the_detail\":\"Explore the detail\",\"income\":\"Income\",\"search\":\"Search\",\"search_budget_line\":\"Search for a specific budget line\"},\"index\":{\"amount\":\"Amount\",\"budget_guide_pitch\":\"Check the Budget Guide\",\"budget_line\":\"Budget line\",\"categories\":\"Categories\",\"custom\":\"Custom\",\"expense_in_what\":\"In what is spent\",\"expense_to_do_what\":\"For what is spent\",\"help\":\"We explain how a municipal budget works\",\"income_from_what\":\"Where does the income come from\",\"per_inhabitant\":\"Per inhabitant\",\"title\":\"Local municipality budgets in %{year}\"},\"show\":{\"about_this_line\":\"About this budget line\",\"avg_province\":\"Avg. %{kind} in the province\",\"avg_province_tooltip\":\"Mean value in the other municipalities of the province\",\"back_to_parent\":\"Back to parent budget line\",\"budget_line_category\":\"Category\",\"budget_line_percentage\":\"Percentage\",\"budget_line_value\":\"Amount\",\"budget_lines_distribution\":\"Expense budget lines distribution\",\"current_amount\":\"Current amount\",\"current_amount_per_inhabitant\":\"Current amount / hab.\",\"evolution\":\"Evolution\",\"give_your_opinion\":\"Give your opinion about this budget line\",\"give_your_opinion_cta\":\"Do you understand this budget line? Do you think it\\'s enough, too much? Give your opinion\",\"initial_estimate\":\"Initial budget\",\"last_year\":\"Last year %{value}\",\"no_description\":\"There\\'s no description for this budget line.\",\"no_distribution\":\"There aren\\'t any related budget lines.\",\"no_more_descendants\":\"There are no more descendants\",\"not_available\":\"Not avail.\",\"percentage\":\"% over the total\",\"percentage_tooltip\":\"Percentage of the total budget this budget line implies\",\"planned\":\"planned\",\"planned_female\":\"planned\",\"planned_per_inhabitant\":\"Initial budget / inh.\",\"planned_per_inhabitant_tooltip\":\"Budgeted amount divided by the inhabitants\",\"planned_tooltip\":\"Budgeted amount\",\"raise_hand\":\"Raise your hand\",\"real_value\":\"Real %{kind} is %{value}\",\"real_vs_planned\":\"% execution\",\"real_vs_planned_tooltip\":\"Percentage executed\",\"sub_budget_lines\":\"In this budget line\",\"twitter_text_expense\":\"In @gobierto: Municipal expense on %{name} in %{budget_line_name} for year %{year}\",\"twitter_text_income\":\"In @gobierto: Municipal income on %{name} in %{budget_line_name} for year %{year}\",\"updated\":\"updated\",\"updated_female\":\"updated\",\"vs_previous_year\":\"vs. previous year\",\"vs_previous_year_tooltip\":\"Comparision with the data of the previous year\"}},\"budgets\":{\"guide\":{\"budget_execution\":\"Budget execution\",\"budget_execution_p1_html\":\"Approving a budget does not mean that it is written in stone. Throughout the year there are unforeseen events that change the amount or purpose of the expenses. These changes are noted in another document: \\\\u003ca href=/presupuestos/ejecucion/%{year}\\\\\"\\\\u003ebudget execution\\\\u003c/a\\\\u003e .\",\"budget_execution_p2\":\"In order to know if our city council has planned the accounts well, we only have to compare the budget and the execution: Have you spent more than budgeted, have you left money or adjusted to what is expected ?.\",\"capital_income\":\"Income from capital\",\"capital_income_p1\":\"They come from the sale of municipal properties such as plots or estates. They can also come from European funds.\",\"classification\":\"Budget classification\",\"classification_p1\":\"Every budget has income and expenses. Income is classified in an economic way, which establishes its origin. Expenses, on the other hand, are functional and economical.\",\"debt\":\"Living Debt: How Much Should Your Township\",\"description\":\"The municipal budget is the document that explains how the public money is managed during a year. Here we explain the most important concepts so that you do not lose in your reading.\",\"economic\":\"Economic spending\",\"economic_p1\":\"Indicates the nature of the expense. For example, \\\\\"Staff costs\\\\\", which includes the salaries of all staff members according to their category. It is similar to the economic classification of income.\",\"economic_p2\":\"In an official budget, the main sections are called chapters. And in turn, each chapter is divided into articles, concepts and subconceptions.\",\"execution\":\"Budget Execution\",\"expense_economic_1_desc\":\"Salaries of civil servants, indemnities, contributions and pension plans for all contracted personnel.\",\"expense_economic_2_desc\":\"Supplies, materials and expenses of services or work done by contracted outsiders.\",\"expense_economic_3_desc\":\"Payment of interest arising from financial operations.\",\"expense_economic_4_desc\":\"Contributions to other entities or administrations (state, autonomous or private companies) to finance current operations.\",\"expense_economic_5_desc\":\"These are funds that cover emergency situations and unforeseen expenses.\",\"expense_economic_6_desc\":\"Creation of new equipment or infrastructures and acquisition of inventories.\",\"expense_economic_7_desc\":\"Payment of credits to finance capital operations, which have financed real investments.\",\"expense_economic_8_desc\":\"Acquisition of financial assets for the construction of deposits and sureties required.\",\"expense_economic_9_desc\":\"Payment of amortization of financial liabilities (such as debt).\",\"expense_functional_0_desc\":\"This item is intended to pay the debt accumulated by the municipality.\",\"expense_functional_1_desc\":\"This item covers the minimum and compulsory needs of a municipality.\",\"expense_functional_2_desc\":\"It is the money that goes to prevention and assistance. For example, the promotion of employment.\",\"expense_functional_3_desc\":\"It affects services that improve the quality of life: health, education, culture and leisure.\",\"expense_functional_4_desc\":\"Herein lies what helps to develop the potential of different economic sectors.\",\"expense_functional_9_desc\":\"Here the expenses of the city council and other public bodies are grouped together.\",\"expenses\":\"Expenses\",\"expenses_how\":\"How does the municipality use the money of all the neighbors? Expenses can be classified in two ways: from the functional point of view (what is spent) and economic (how it is spent).\",\"expenses_per_inhabitant\":\"The spending per capita was ...\",\"expenses_types\":\"Types of expense\",\"expenses_types_p1\":\"How does the municipality use the money of all the neighbors? Everything is detailed here. Expenses can be classified in two ways: from the functional point of view (what is spent) and economic (how it is spent). The amount of money is the same, but we see it from two angles.\",\"financial_income\":\"Financial income\",\"financial_income_p1\":\"They can be frozen bank deposits or loans granted by private entities, such as banks or insurers.\",\"functional\":\"Functional expenditure\",\"functional_p1\":\"It is the most explanatory: it tells us, for example, how much is spent on garbage collection or sports facilities. It is also known as expenditure item classification.\",\"functional_p2\":\"In an official budget is divided into areas, and these in turn in policies, groups and programs. This level of depth allows you to know in detail where the money goes.\",\"how_much_debt\":\"How much does your municipality owe?\",\"how_much_debt_p1\":\"The living debt of a municipality indicates what the council owes to banks and other financial institutions. It should not be confused with the total deficit of the municipality (the difference between income and expenditure).\",\"how_much_debt_p2\":\"Living debt only includes what is owed to financial institutions.\",\"how_much_debt_p3\":\"Some municipalities have greater indebtedness capacity than others. It is possible that one municipality has more debt than another, but if its economy is stronger, it will have more capacity to support and reduce it.\",\"how_to_read\":\"And how do you read?\",\"how_to_read_p1_html\":\"All municipal budgets have the same structure, legally defined in \\\\u003ca href=\\\\\"https://www.boe.es/buscar/doc.php?id=BOE-A-2008-19916\\\\\"\\\\u003eOrder EHA / 3565/2008\\\\u003c/a\\\\u003e . The basic structure is simple: it is divided into income and expenses. That is, answers the questions Where does the money come from? (Income) and what is it spent on? (expenses).\",\"income\":\"Income\",\"income_1_desc\":\"They tax the source of income, the fruits of heritage or an economic activity.\",\"income_2_desc\":\"Some municipalities collect a part of the VAT and other special taxes.\",\"income_3_desc\":\"Public prices and contributions for municipal benefits.\",\"income_4_desc\":\"Money that the city council receives from the State and the Autonomous Community.\",\"income_5_desc\":\"Property income of the municipality. They are the profits on goods that are not destined to public service.\",\"income_6_desc\":\"Sale of plots and rustic farms.\",\"income_7_desc\":\"Income of a non-tax nature intended to finance capital expenditures.\",\"income_8_desc\":\"Return of immobilized deposits or deposits.\",\"income_9_desc\":\"Credits requested from private entities.\",\"income_p1\":\"To begin with, income is divided according to its economic nature, ie where the money comes from and what \\\\\"form\\\\\" it has: If it is a bank credit, a municipal property that has been sold or a tax.\",\"income_p2\":\"In %{year} were entered...\",\"intro_p1\":\"The municipal council - formed by the mayor and those responsible for each area of \u200B\u200Bgovernment - designs the budget, drafts it through the Department of Finance and presents it in plenary, which is the organ of maximum representation municipal politics.\",\"intro_p2\":\"Once there, all councilors study it and suggest modifications. Finally it is put to a vote and approved.\",\"intro_p3\":\"The budget must be approved before December 31 of the previous year. That is, the 2016 budget has to be approved in December 2015, if not, it is automatically extended.\",\"regular_income\":\"Current income\",\"regular_income_p1\":\"Taxes and fees collected by the municipality, or money that the state transfers to each municipality. They are the most common.\",\"sources\":\"Sources\",\"sources_p1_html\":\"To prepare this guide we have taken as reference the official structure of a municipal budget, defined in \\\\u003ca href=\\\\\"https://www.boe.es/buscar/doc.php?id=BOE-A-2008-19916\\\\\"\\\\u003eOrder EHA / 3565/2008\\\\u003c/a\\\\u003e and we have been inspired by other documents such as \\\\u003ca href=\\\\\"http://www.ocmcartagena.org/files/archive/Entendiendo-un-presupuesto-municipal.pdf\\\\\"\\\\u003eUnderstanding a municipal budget\\\\u003c/a\\\\u003e and an \\\\u003ca href=\\\\\"https://docs.google.com/presentation/d/1oysDrJvlFxP0sKlzBalxvrV3lzSE5OCSKY7qd5yYpcA/pub?start=false\\\\u0026loop=false\\\\u0026delayms=3000\\\\u0026slide=id.p\\\\\"\\\\u003eintroduction guide to municipal budgets\\\\u003c/a\\\\u003e .\",\"title\":\"How a municipal budget works\",\"types_income\":\"Types of income\",\"types_income_p1\":\"The income is divided into nine sections and each of them in several subsections. These divisions allow to deepen to know the exact origin of each income.\",\"types_income_p2\":\"For example: within Indirect Taxes are the specific Consumptions. And within the latter, are the taxes of alcohol or tobacco. In an official budget, the main sections are called chapters. And in turn, each chapter is divided into articles, concepts and subconceptions.\",\"types_income_p3\":\"In Gobierto we have simplified it so that you only have to look for the name of each section.\"},\"index\":{\"at_a_glance\":\"At a glance\",\"at_years_end\":\"* at the end of %{year}\",\"budget_guide\":\"Read our Budget Guide\",\"budget_lines_block\":{\"intro\":\"These are your town\\'s most important budget lines.\",\"title\":\"Budget lines\"},\"budget_receipt\":{\"intro\":\"Learn how your contribution is spent\",\"title\":\"Your taxes receipt\"},\"budget_slides\":{\"slide_1\":\"Gasto en asistencia social por habitante\",\"title\":\"A peek into the budget\"},\"budgets_comparision\":{\"button\":\"Compare\",\"text\":\"Compare the %{site} budget with some others councils from\"},\"category_percentage\":\"Percentage\",\"category_value\":\"Amount\",\"context\":\"Context\",\"data_of_year\":\"* as of %{year}\",\"debt\":\"Debt\",\"debt_tooltip\":\"Debt of the local administration %{of_the_organization_name}\",\"description\":\"In this site you can learn about the budget\\'s income and expenses, the status of the execution, the different providers we work with and the evolution of the expense per inhabitant.\",\"executed\":\"Executed\",\"executed_percent\":\"%{percentage}% of the current budget\",\"executed_percent_other_year_html\":\"In %{year} it was a %{link}\",\"executed_tooltip\":\"The execution is the quantity that has been spent from the initial budget.\",\"execution_block\":{\"button\":\"Complete execution data\",\"expense\":\"Expense\",\"income\":\"Income\",\"intro\":\"This is how the budget is being spent.\",\"last_update\":\"Last update: %{date}.\",\"title\":\"Budget execution\"},\"expenses\":\"Expenses\",\"expenses_per_inhabitant\":\"Expenses per inhabitant\",\"expenses_per_inhabitant_tooltip\":\"Starting budget divided by the inhabitants\",\"expenses_per_inhabitant_updated\":\"Budget per inhabitant updated\",\"header\":\"Budgets\",\"in_total\":\"Total\",\"income\":\"Income\",\"income_per_inhabitant\":\"Income per inhabitant\",\"income_per_inhabitant_tooltip\":\"Starting budget divided by the inhabitants\",\"inhabitants\":\"Inhabitants\",\"inhabitants_tooltip\":\"Number of inhabitants\",\"initial_estimate\":\"Initial budget\",\"initial_estimate_per_inhabitant\":\"Initial budget per inhabitant\",\"less\":\"less\",\"level_1_category\":\"Level 1 category\",\"level_2_category\":\"Level 2 category\",\"main_budget_levels_legend_down\":\"Has decreased\",\"main_budget_levels_legend_one\":\"Change since last year\",\"main_budget_levels_legend_two\":\"\",\"main_budget_levels_legend_up\":\"Has increased\",\"main_budget_levels_per_inhabitant\":\"per inhabitant\",\"main_budget_levels_timeline\":\"Compare income and expenses year by year\",\"main_budget_levels_tooltip_article\":\"since\",\"main_budget_levels_tooltip_down\":\"Has gone down\",\"main_budget_levels_tooltip_up\":\"Has risen\",\"main_budget_lines\":\"Main income and expenses %{from_your_organization_name}\",\"main_budget_lines_expense\":\"Expense\",\"main_budget_lines_income\":\"Income\",\"more\":\"more\",\"most_interesting_budget_lines\":\"Most interesting budget lines\",\"most_interesting_budget_lines_description\":\"Some of the budget lines you are most affected in a daily basis as a citizien. You can also check the complete explorer.\",\"not_available_short\":\"Not avail.\",\"note_about_the_data\":\"Note about the data\",\"note_about_the_data_title\":\"The database we use doesn\\'t include 100% of the municipalities, and the avegages are calculated only with the data that exists (which is most of it). More information in our FAQ\",\"per_person\":\"Per person\",\"planned_vs_executed_other_year_html\":\"In %{year} it was %{link}\",\"search_for_a_budget_line\":\"Search a budget line\",\"see_all\":\"view all\",\"stories_header\":\"Explaining the budget\",\"story_1\":{\"lede\":\"Explaining the budget priorities for 2017, and how we built the budget around them.\",\"title\":\"General activities\"},\"story_2\":{\"lede\":\"Explaining the budget priorities for 2017, and how we built the budget around them.\",\"title\":\"Budgets and the environment\"},\"story_3\":{\"lede\":\"Explaining the budget priorities for 2017, and how we built the budget around them.\",\"title\":\"Promoting sports\"},\"title\":\"Local municipality budgets OF %{place} - %{year}\",\"top_expense_category\":\"Category\",\"top_expense_value\":\"Amount\",\"top_income_category\":\"Category\",\"top_income_value\":\"Amount\",\"total_expenses\":\"Total expenses\",\"total_expenses_tooltip\":\"Starting budget\",\"total_expenses_updated\":\"Current budget\",\"visualize\":\"Visualize expenses per inhabitant or the total\"}},\"budgets_elaboration\":{\"index\":{\"at_a_glance\":\"At a glance\",\"auto_funding\":\"Autofunding capability\",\"auto_funding_tooltip\":\"Percentage of fiscal income versus regular income\",\"by_custom_category\":\"per area\",\"by_economic_expense\":\"in what\",\"by_economic_income\":\"in what\",\"by_functional_expense\":\"for what\",\"category_percentage\":\"% of Total\",\"category_value\":\"Amount\",\"context\":\"Context\",\"debt_level\":\"Debt level\",\"debt_level_tooltip\":\"External funding need to pay expenses once used local resources\",\"description\":\"Government team publishes a draft of next year budget to discuss with the opposition and the citiziens. All together we can create the best budget for %{place_name}.\",\"diff_previous\":\"vs. previous\",\"expenses_per_inhabitant\":\"Expense per person\",\"expenses_per_inhabitant_tooltip\":\"Starting budget divided by the amount of inhabitants\",\"explore_the_detail\":\"Explore the details\",\"header\":\"Budgets elaboration\",\"in_total\":\"Total\",\"income_per_inhabitant\":\"Income per inhabitant\",\"income_per_inhabitant_tooltip\":\"Starting budget divided by the inhabitants\",\"main_budget_levels_timeline\":\"Compare income and expenses year by year\",\"main_budget_lines\":\"Main income and expenses %{from_your_organization_name}\",\"main_budget_lines_expense\":\"Expense\",\"main_budget_lines_income\":\"Income\",\"metric_boxes_data\":\"Data\",\"metric_boxes_data_description\":\"This is how it will be the next year\",\"net_savings\":\"Net savings\",\"net_savings_tooltip\":\"Regular income minus regular expenses and fiscal expenses\",\"next_year_proposal\":\"Proposal next %{year}\",\"no_data\":\"There\\'s no data for this classification\",\"note_about_the_data\":\"Note about the data\",\"note_about_the_data_title\":\"The database we use doesn\\'t include 100% of the municipalities, and the avegages are calculated only with the data that exists (which is most of it). More information in our FAQ\",\"per_person\":\"Per inhabitant\",\"proposal\":\"Proposal\",\"total_expenses\":\"Total expenses\",\"total_expenses_tooltip\":\"Starting budget\",\"total_income\":\"Total income\",\"total_income_tooltip\":\"Starting budget\",\"visualize\":\"Visualize expenses per inhabitant\"}},\"budgets_execution\":{\"execution_table\":{\"deviation\":\"Diff\",\"executed\":\"Execution\",\"planned\":\"Plann.\",\"view_less\":\"View less\",\"view_more\":\"View more\"},\"index\":{\"budget_guide\":\"Read our Budget Guide\",\"budget_lines_expense_higher\":\"Expense budget lines higher than planned\",\"budget_lines_expense_lower\":\"Expense budget lines lower than planned\",\"budget_lines_income_higher\":\"Income budget lines higher than planned\",\"budget_lines_income_lower\":\"Income budget lines lower than planned\",\"category\":\"Category\",\"custom_button\":\"Custom\",\"description\":\"The budget execution is the expense over the initial budget. It\\'s normal to find deviations from the budget, as its impossible to predict the expenses with a great precision\",\"economic\":\"economic\",\"economic_button\":\"In what is spent\",\"euros\":\"In euros\",\"execution_disclaimer\":\"It\\'s very common to have deviatiatons, due to the difficulty of foreseeing the expenses.\",\"execution_help\":\"The execution is the amount spent based on the planned budget.\",\"expenses_executed\":\"Executed expenses\",\"expenses_planned\":\"Planned expenses\",\"functional\":\"functional\",\"functional_button\":\"For what is spent\",\"higher_execution\":\"Higher execution\",\"income_executed\":\"Executed income\",\"income_planned\":\"Planned income\",\"initial_estimate\":\"Initial budget\",\"initial_estimate_per_inhabitant\":\"Initial budget per inhabitant\",\"lower_execution\":\"Lower execution\",\"metric\":{\"execution\":{\"expenses_title\":\"Execution of expenses\",\"income_title\":\"Execution of income\",\"previous_execution_message\":\"In %{year} execution reached %{percentage}\"}},\"percentage\":\"Percentage\",\"sort\":\"Sort\",\"title\":\"Budget execution\",\"tooltip_disclaimer\":\"\\\\u003cstrong\\\\u003eThis is approximate\\\\u003c/strong\\\\u003e. \\\\u003cbr /\\\\u003e Throughout the year there are unforeseen events that change the amount or purpose of the expenses or income.\",\"value\":\"Value\",\"vis\":{\"absolute\":\"Execution in \u20AC\",\"empty_lines\":\"There aren\\'t data for this classification and this year. Please, choose another filter.\",\"expenses\":{\"title\":\"Explore the execution of the expenses\"},\"income\":{\"title\":\"Explore the execution of the income\"},\"lines_title\":\"Budget lines\",\"percent\":\"% of progress\",\"percent_log\":\"% of progress (log)\",\"tooltip\":\"It has been executed by a\",\"tooltip_budgeted\":\"Initial budget\",\"tooltip_budgeted_updated\":\"Updated budget\",\"tooltip_executed_amount\":\"Executed amount\"}},\"widget_template_deviation\":{\"expense\":\"Expense\",\"income\":\"Income\",\"planned\":\"planned\",\"real\":\"real\"}},\"common\":{\"budget_line_description_html\":\"This budget line is composed of %{kind_what} in %{description}. If you want to understand more about it, check its parent budget line: %{link}\",\"expense\":\"expense\",\"expenses\":\"expenses\",\"income\":\"income\",\"incomes\":\"incomes\"},\"events\":{\"gobierto_budgets_budgets_updated\":\"Budgets updated\"},\"exports\":{\"budget_lines_description\":\"Compare income and expenses year by year\",\"budget_lines_title\":\"Budget lines\",\"invoices_description\":\"Data per year\",\"invoices_title\":\"Providers and Invoices\"},\"featured_budget_lines\":{\"gobierto_site_template\":{\"how_much_place_in\":\"How much does %{place} expend on...\",\"last_year\":\"Last year we spent\",\"per_person\":\"Per inhabitant\",\"show_me_another\":\"Show me another\",\"title\":\"Some important budget lines\",\"total\":\"Total expenses\"}},\"feedback\":{\"ask_more_information\":{\"ask_for_feedback\":\"Write your email to %{your_organization_name}\",\"send\":\"Send\",\"your_email\":\"Your email\"},\"follow\":{\"follow\":\"Follow\",\"your_email\":\"Your email\"},\"follow_success\":{\"error\":\"Looks like your email is invalid\",\"share\":\"Do you want to share this statistics in\",\"share_text\":\"Check and opinate about the budget in %{place_name}\",\"success\":\"Good! Check your email and click the link\"},\"step1\":{\"answer1_0\":\"Yes\",\"answer1_1\":\"No\",\"understand\":\"Do you understand this budget line?\"},\"step2_no\":{\"answer_html\":\"\\\\u003cstrong\\\\u003e%{datum}\\\\u003c/strong\\\\u003e of the people who voted said that \\\\u003cstrong\\\\u003edon\\'t understand this budget line\\\\u003c/strong\\\\u003e\",\"ask\":\"You can ask for more information\"},\"step2_yes\":{\"option1_html\":\"I think it\\'s \\\\u003cspan\\\\u003eFEW\\\\u003c/span\\\\u003e\",\"option2_html\":\"I think it\\'s \\\\u003cspan\\\\u003eGOOD\\\\u003c/span\\\\u003e\",\"option3_html\":\"I think it\\'s \\\\u003cspan\\\\u003eTOO MUCH\\\\u003c/span\\\\u003e\",\"question\":\"Do you think the amount is appropiate?\"},\"step3\":{\"option1\":\"Few\",\"option2\":\"Good\",\"option3\":\"Too much\",\"thanks\":\"Thanks for your opinion. This is what the rest of the people think:\"}},\"feedback_mailer\":{\"new_feedback_request\":{\"body\":\"You\\'ve received a new information request about the budget line %{budget_line_name} (%{year}) from a person with the email %{person_email}.\",\"body_budgets\":\"You\\'ve received a new information request about your municipality budgets from a person with the email %{person_email}.\",\"subject\":\"You\\'ve received a new information request\"}},\"indicators\":\"Indicators\",\"indicators_intro\":\"Understand the budgets of %{place} through its main figures: gross savings, per capita investment or investment financing.\",\"invoices\":{\"show\":{\"empty\":\"Any filter has data\",\"fromto\":\"From To No. Inv.\",\"invoiced\":\"Budget invoiced\",\"more\":\"More than\",\"table\":{\"fields\":{\"date\":\"Date\",\"paid\":\"Payed\",\"payment_date\":\"Payment date\",\"payment_date_limit\":\"Payment date limit\",\"provider_id\":\"NIF (SSN)\",\"provider_name\":\"Supplier\",\"subject\":\"Reason\",\"value\":\"Charge\"},\"pager\":{\"first\":\"First\",\"format\":\"Pages %{tpl} of %{tpl2}\",\"last\":\"Last\",\"next\":\"Next\",\"prev\":\"Prev\"}}}},\"layouts\":{\"application\":{\"budgets\":\"Budgets\"},\"menu_subsections\":{\"data\":\"Data\",\"elaboration\":\"Elaboration\",\"execution\":\"Execution\",\"guide\":\"Guide\",\"indicators\":\"Indicators\",\"providers\":\"Providers and Invoices\",\"receipt\":\"Receipt\"}},\"providers\":{\"index\":{\"all_invoices\":\"All the invoices\",\"amount_distribution\":\"Amount distribution\",\"and_more_html\":\"and \\\\u003cspan id=\\\\\"providers-number\\\\\"\\\\u003e\\\\u003c/span\\\\u003e providers\",\"are_from\":\"are from\",\"check_detail\":\"Check the detail\",\"corporation_sa\":\"public limited companies\",\"corporation_sl\":\"private limited companies \\\\u0026 others\",\"description\":\"Which providers hires %{the_organization_name}? Which invoices are paid? From this section you\\'ll be able to check a summary and have a context of all the information aggregated, and also check the detail of each payment %{the_organization_name} does.\",\"freelances\":\"freelances\",\"invoices\":\"Invoices\",\"invoices_from_which\":\"From which\",\"invoices_sum\":\"invoices sum a total of\",\"largest_provider_html\":\"The largest provider means \\\\u003cspan id=\\\\\"largestProvider\\\\\"\\\\u003e\\\\u003c/span\\\\u003e of the whole invoicing\",\"last_12_months\":\"Last 12 months\",\"last_3_months\":\"Last 3 months\",\"less_than_1000_html\":\"The \\\\u003cspan id=\\\\\"lessThan1000\\\\\"\\\\u003e\\\\u003c/span\\\\u003e of the invoices are smaller than 1,000 \u20AC\",\"loading\":\"Loading...\",\"main_providers\":\"Main providers\",\"mean_amount\":\"mean amount\",\"mean_and_median\":\"Mean and median\",\"mean_and_median_summary\":\"That is, half of the invoices are from this amount or less\",\"mean_summary\":\"Amount resulting from adding the amounts of all the invoices and dividing it by the number of invoices\",\"median_amount\":\"median amount\",\"months_distribution\":\"Months distribution\",\"percentile_10_html\":\"The \\\\u003cspan id=\\\\\"percentile10\\\\\"\\\\u003e\\\\u003c/span\\\\u003e of the invoices mean the 10 % of the invoicing\",\"percentile_50_html\":\"The \\\\u003cspan id=\\\\\"percentile50\\\\\"\\\\u003e\\\\u003c/span\\\\u003e of the invoices mean the 50 % of the invoicing\",\"previous\":\"Previous\",\"sum_amount\":\"SUMMED AMOUNT\",\"this_year\":\"This year\",\"view_data_from\":\"View data from\"}},\"receipts\":{\"show\":{\"description\":\"Part of your municipality budget is obtained via taxes. Calculate the amount depending on your house, car...\",\"detail\":\"Your contribution detail\",\"explanation\":\"Enter the amounts you have paid for each of the concepts in\",\"pick_to_calculate\":\"Pick to calculate\",\"share\":\"Share it\",\"share_text\":\"Check how much do you contribute to the budget of\",\"title\":\"Which is your contribution to %{site_name} budget?\",\"your_contribution\":\"Your contribution to %{site_name}\"}},\"shared\":{\"data_updated_at\":{\"last_update\":\"Last update\"},\"enough_information\":{\"enough_information\":\"Enough information?\",\"enough_information_cta\":\"Ask %{to_your_organization_name}\",\"enough_information_desc\":\"If you think it\\'s necessary to include more information about this data or about the usage of your taxes ask your municipality\"}},\"visualizations\":{\"G_custom\":\"Expenses per area\",\"G_economic\":\"In what\",\"G_functional\":\"How\",\"I_custom\":\"Income per area\",\"I_economic\":\"How\",\"category_per_inhabitant\":\"%{category} per inhabitant\",\"expenses_per_inhabitant\":\"Expenses per inhabitant\",\"expenses_per_inhabitant_updated\":\"Expenses per inhabitant updated\",\"inhabitant_short\":\"inh\",\"mean_autonomy\":\"Autonomy mean\",\"mean_national\":\"National mean\",\"mean_province\":\"Province mean\",\"previous_year_diff\":\"Previous year diff\",\"total_expenses\":\"Total expenses\"}},\"gobierto_calendars\":{\"calendar_integration\":{\"auth_error\":{\"message\":\"Calendar credentials are not valid\"},\"error\":{\"message\":\"There has been a problem synchronizing the calendar\"},\"timeout_error\":{\"message\":\"The connection time to the calendar server has expired\"}},\"events\":{\"gobierto_calendars_event_published\":\"%{subject_name}\",\"gobierto_calendars_event_updated\":\"%{subject_name}\"},\"fullcalendar\":{\"day\":\"Day\",\"list\":\"List\",\"month\":\"Month\",\"today\":\"Today\",\"week\":\"Week\"}},\"gobierto_cms\":{\"events\":{\"gobierto_cms_page_created\":\"Page created\",\"gobierto_cms_page_published\":\"Page published\",\"gobierto_cms_page_updated\":\"Page updated\",\"gobierto_cms_section_created\":\"Section created\",\"gobierto_cms_section_item_created\":\"Page added to section\",\"gobierto_cms_section_item_deleted\":\"Page deleted from section\",\"gobierto_cms_section_updated\":\"Section updated\"},\"pages\":{\"templates\":{\"page\":{\"documents\":\"Documents\"}}}},\"gobierto_common\":{\"dynamic_content\":{\"table_component\":{\"attachment\":\"Attachment\",\"download\":\"Download\",\"download_attachment\":\"Download attachment\",\"view_content\":\"View content\"}},\"events\":{\"gobierto_common_collection_created\":\"Collection created\",\"gobierto_common_collection_updated\":\"Collection updated\",\"gobierto_common_term_created\":\"Term created\",\"gobierto_common_term_updated\":\"Term updated\"},\"visualizations\":{\"absolute\":\"Execution in \u20AC\",\"adults\":\"Employed population\",\"age\":\"Age\",\"axis\":\"years\",\"between_25_44\":\"Between 25 and 44\",\"cards\":{\"active_pop\":{\"figure_first\":\"of total\",\"figure_second\":\"people\",\"title\":\"Active population\"},\"births\":{\"country\":\"Country average\",\"place\":\"%{place}\",\"province\":\"Province average\",\"title\":\"Birth rate\"},\"budget_by_inhabitant\":{\"title\":\"Budget per inhabitant\"},\"cars\":{\"title\":\"Cars per inhabitant\"},\"cars_tax\":{\"figure_first\":\"%{place}\",\"figure_second\":\"province average\",\"title\":\"Passenger cars tax\"},\"companies\":{\"title\":\"Companies\"},\"construction_tax\":{\"figure_first\":\"%{place}\",\"figure_second\":\"province average\",\"title\":\"Construction tax\"},\"contracts_comparison\":{\"figure_first\":\"short term\",\"figure_second\":\"long term\",\"title\":\"Contracts in the last month\"},\"contracts_sector\":{\"agriculture\":\"Agriculture\",\"construction\":\"Construction\",\"industry\":\"Industry\",\"services\":\"Services\",\"title\":\"Contracts by sector\"},\"deaths\":{\"country\":\"Country average\",\"place\":\"%{place}\",\"province\":\"Province average\",\"title\":\"Death rate\"},\"debt_by_inhabitant\":{\"title\":\"Debt by inhabitant\"},\"debt_level\":{\"title\":\"Debt level\"},\"economic_tax\":{\"title\":\"Economic activity tax\"},\"expenditure_rigidity\":{\"title\":\"Expenditure rigidity\"},\"financial_charge\":{\"title\":\"Financial charge\"},\"financial_risk\":{\"title\":\"Financial risk\"},\"freelancers\":{\"title\":\"Freelancers\"},\"frequency\":\"Updated %{type}\",\"gross_saving\":{\"title\":\"Gross saving\"},\"gross_savings_rate\":{\"title\":\"Gross savings rate\"},\"houses\":{\"figure_first\":\"family houses\",\"figure_second\":\"main houses\",\"title\":\"Houses\"},\"ibi\":{\"first_column\":\"\",\"second_column\":\"City\",\"third_column\":\"Rustic\",\"title\":\"Land value tax\"},\"income\":{\"first_column\":\"\",\"second_column\":\"By inhabitant\",\"third_column\":\"By household\",\"title\":\"Municipality income\"},\"income_overview\":{\"figure_first\":\"%{place}\",\"figure_second\":\"Spain\",\"title\":\"Gross income\"},\"investment_by_inhabitant\":{\"title\":\"Investment by inhabitant\"},\"investment_financing\":{\"title\":\"Investment financing\"},\"liability_cost\":{\"title\":\"Liability cost\"},\"meta\":{\"time\":\" in \",\"where\":\"At \"},\"net_saving\":{\"title\":\"Net saving\"},\"net_savings_rate\":{\"title\":\"Net savings rate\"},\"per_capita_investment\":{\"title\":\"Per capita investment\"},\"per_capita_tax_burden\":{\"title\":\"Per capita tax burden\"},\"population\":{\"title\":\"Inhabitants\"},\"self_financing_capacity\":{\"title\":\"Self financing capacity\"},\"ss_members\":{\"title\":\"Social Security affiliates\"},\"tax_autonomy\":{\"title\":\"Tax autonomy\"},\"unemployed_sector\":{\"agriculture\":\"Agriculture\",\"construction\":\"Construction\",\"industry\":\"Industry\",\"services\":\"Services\",\"title\":\"Unemployed by sector\"},\"updated\":\"Last update\"},\"country\":\"Spain\",\"elderly\":\"Elderly\",\"elderly_info\":\"The %{percent} of the population is elder than %{limit} years\",\"empty_lines\":\"There aren\\'t data for this classification and this year. Please, choose another filter.\",\"frequency\":\"Updated %{type}\",\"gross_income\":\"Gross income\",\"increase\":\"Increase\",\"inhabitant_short\":\"inh\",\"inhabitants\":\"Inhabitants\",\"keep\":\"Keep\",\"label\":\"inhabitants\",\"less_25\":\"Younger than 25\",\"lines_title\":\"Budget lines\",\"main_budget_levels_legend_down\":\"Has decreased\",\"main_budget_levels_legend_one\":\"Change since last year\",\"main_budget_levels_legend_two\":\"\",\"main_budget_levels_legend_up\":\"Has increased\",\"main_budget_levels_per_inhabitant\":\"per inhabitant\",\"main_budget_levels_tooltip_article\":\"since\",\"main_budget_levels_tooltip_article_last\":\"from the previous\",\"main_budget_levels_tooltip_down\":\"Has gone down\",\"main_budget_levels_tooltip_up\":\"Has risen\",\"mean\":\"Average age: %{age} years\",\"mean_autonomy\":\"Autonomy mean\",\"mean_national\":\"National mean\",\"mean_province\":\"Province mean\",\"median\":\"Median age: %{age} years\",\"men\":\"Men\",\"million\":\"million\",\"mode\":\"Most common age: %{age} years\",\"more_44\":\"Older than 44\",\"percent\":\"% of progress\",\"percent_log\":\"% of progress (log)\",\"previous_year_diff\":\"Previous year diff\",\"project\":\"Project\",\"questions\":\"Questions\",\"reduce\":\"Reduce\",\"thousand\":\"thousand\",\"time\":\" in \",\"title\":\"Wealth and population in the province\",\"tooltip\":\"It has been executed by a\",\"tooltip_budgeted\":\"Initial budget\",\"tooltip_budgeted_updated\":\"Updated budget\",\"tooltip_executed_amount\":\"Executed amount\",\"unemployed\":\"Unemployed\",\"where\":\"At \",\"women\":\"Women\",\"youth\":\"Minors\",\"youth_info\":\"The %{percent} of the population is younger than %{limit} years\"},\"vue_components\":{\"block_header\":{\"all\":\"All\",\"none\":\"None\"},\"calendar\":{\"date\":\"Choose date\"},\"filters\":{\"clear\":\"Clear filters\"},\"pagination\":{\"next\":\"Next\",\"previous\":\"Previous\"},\"read_more\":{\"less\":\"See less\",\"more\":\"See more\"},\"table\":{\"customize_columns\":\"Customize columns\",\"no_data\":\"There is no data for this criteria\"}}},\"gobierto_dashboards\":{\"available_cards\":\"Available cards\",\"back\":\"back\",\"changes\":\"Dashboard changed\",\"date\":\"Date: \",\"default_title\":\"Dashboard title\",\"delete\":\"Delete\",\"delete_dialog\":\"Do you wish to delete dashboard?\",\"discard\":\"discard changes\",\"indicators_amount\":\"\u279E %{amount} indicators\",\"instructions\":\"\\\\\"\u21E7 Select a card type and include it in the central area \u279E\\\\n\\\\nThen you can configure it.\\\\\"\\\\n\",\"objective\":\"Goal\",\"percentage\":\"Attainment\",\"percentage_alt\":\"% Attainment\",\"placeholder\":\"Write the title of the indicator or project\",\"public\":\"Public\",\"save\":\"Save\",\"select\":\"Select indicator\",\"type\":\"Type\",\"value\":\"Reached\",\"view_item\":\"See item\",\"widgets\":{\"html\":\"HTML Content\",\"indicator\":\"Indicator\",\"individual\":\"Individual\",\"table\":\"Table\"}},\"gobierto_data\":{\"accessibility\":{\"editor\":\"SQL Editor\"},\"data_type\":{\"boolean\":\"boolean\",\"date\":\"date\",\"datetime\":\"datetime\",\"decimal\":\"decimal\",\"hstore\":\"hstore\",\"integer\":\"integer\",\"jsonb\":\"jsonb\",\"string\":\"string\",\"text\":\"text\",\"time\":\"time\",\"timestamp\":\"time\",\"timestampz\":\"time\"},\"events\":{\"gobierto_data_dataset_dataset_created\":\"Dataset created\",\"gobierto_data_dataset_dataset_data_updated\":\"Dataset data updated\",\"gobierto_data_dataset_dataset_deleted\":\"Dataset deleted\",\"gobierto_data_dataset_dataset_updated\":\"Dataset updated\"},\"layouts\":{\"application\":{\"gobierto_data\":\"Data\"}},\"projects\":{\"all\":\"All\",\"buttonFork\":\"Click to create your own version of this query\",\"buttonQueries\":\"See queries (r)\",\"buttonRecentQueries\":\"See recent queries (r)\",\"buttonRunQuery\":\"Run query (CMD/WIN + Enter)\",\"cancel\":\"Cancel\",\"categories\":\"Categories\",\"createCopy\":\"Create a copy\",\"dashboards\":\"Dashboards\",\"data\":\"Data\",\"dataset\":\"Datasets\",\"datasetUpdated\":\"Last updated datasets\",\"deleteQuery\":\"Are you sure you want to delete this query?\",\"deleteViz\":\"Are you sure you want to delete this visualization?\",\"description\":\"Description\",\"download\":\"Download\",\"downloadData\":\"Download data\",\"edit\":\"Edit\",\"emptyRecentQueries\":\"There\\'s no recent queries\",\"favs\":\"Favorites\",\"frequency\":\"Frequency\",\"guide\":\"Guide to using the SQL editor\",\"license\":\"License\",\"link\":\"Link\",\"map\":\"Map\",\"modifiedQuery\":\"Modified Query\",\"modifiedVisualization\":\"Modified visualization\",\"numberOfRows\":\"Number of rows\",\"preview\":\"Preview\",\"private\":\"Private\",\"queries\":\"Queries\",\"query\":\"Query\",\"queryEmpty\":\"No available queries\",\"queryExecuted\":\"Query executed in\",\"queryName\":\"Query name\",\"recents\":\"Recents\",\"records\":\"Records\",\"resetQuery\":\"Reset query\",\"resetViz\":\"Reset visualization\",\"resources\":\"Resources\",\"revert\":\"Revert\",\"runQuery\":\"Run query\",\"save\":\"Save\",\"savedQuery\":\"Saved query\",\"savedVisualization\":\"Saved visualization\",\"sets\":\"Sets\",\"showAll\":\"Show all\",\"showLess\":\"Show less\",\"sourceDataset\":\"Source\",\"sourceDatasetUrl\":\"Source url\",\"subject\":\"Subject\",\"summary\":\"Summary\",\"updated\":\"Updated\",\"visEmpty\":\"No available visualizations\",\"visName\":\"Visualization name\",\"visPrivate\":\"Your visualizations\",\"visPublic\":\"All\",\"visualizations\":\"Visualizations\",\"visualize\":\"Visualize\",\"yourQueries\":\"Your queries\"}},\"gobierto_exports\":{\"exports\":{\"index\":{\"no_submodules\":\"There aren\\'t any active submodules\",\"subtitle\":\"In this page you can download the site data in a reusable format.\",\"title\":\"Download data\"}}},\"gobierto_indicators\":{\"events\":{\"gobierto_indicators_indicator_updated\":\"Indicator updated\"},\"indicators\":{\"gci\":{\"gci_description\":\"The GCI indicators (Global City Indicators), which reflect The quality of life of the city is defined by the World Bank, association with the purpose of fighting poverty and supporting development. The indicators may vary according to the selected year.\",\"gci_title\":\"GCI Indicators\",\"title\":\"Indicators %{year}\"},\"ip\":{\"ip_description\":\"Infoparticipa \u00E9s un projecte desenvolupat per el LPCCP, des de l\\'any 2012, l\\'objectiu \u00E9s avaluar la informaci\u00F3 que es publica als webs de les administracions p\u00FAbliques per promoure que millori la seva transpar\u00E8ncia i qualitat.\",\"ip_title\":\"Infoparticipa Indicators\",\"title\":\"Indicators %{year}\"},\"ita\":{\"ita_description\":\"The indicators ITA (Index of Transparency of the City councils) They are a tool that the non-governmental organization Transparency The International puts at the disposal of the Spanish councils to measure your level of transparency. They evaluate the management carried out by the town hall of a city through an integrated set of 80 clustered indicators in various areas.\",\"ita_title\":\"ITA indicators\",\"title\":\"Indicators %{year}\"},\"shared\":{\"latest_update_html\":\"\\\\u003cstrong\\\\u003eLatest update:\\\\u003c/strong\\\\u003e %{date}\"},\"template\":{\"calculation\":\"Calculation\",\"false\":\"it\\'s not true\",\"methodology\":\"Methodology\",\"more\":\"More information\",\"source\":\"Source\",\"true\":\"is fulfilled\"}},\"layouts\":{\"application\":{\"indicators\":\"Indicators\"},\"navigation\":{\"sub\":{\"gci\":\"GCI Indicators\",\"ip\":\"Infoparticipa Indicators\",\"ita\":\"ITA Indicators\"}}}},\"gobierto_investments\":{\"events\":{\"gobierto_investments_project_project_created\":\"Investment project created\",\"gobierto_investments_project_project_updated\":\"Investment project updated\"},\"layouts\":{\"application\":{\"investments\":\"Investments\",\"investments_paragraph\":\"Check the projects that the City Council has underway, those that will start soon, and the medium-term plans. Detail on the annual investment plan and mechanisms for monitoring the works in progress.\"}},\"projects\":{\"back\":\"see all\",\"description\":\"Description\",\"detail_title\":\"Project detail\",\"empty\":\"No results\",\"exit\":\"Exit\",\"gallery\":\"Gallery\",\"list\":\"List\",\"loading\":\"Loading data...\",\"map\":\"Map\",\"project\":{\"one\":\"%{count} project\",\"other\":\"%{count} projects\"},\"reset\":\"Clean filters\",\"see\":\"See again\",\"showall\":\"Show all\",\"showless\":\"Show less\",\"summary\":\"Summary by stats\",\"tech_sheet\":\"Technical datasheet\",\"tour\":\"Tour virtual\"}},\"gobierto_observatory\":{\"cards\":{\"active_pop\":{\"figure_first\":\"of total\",\"figure_second\":\"people\",\"title\":\"Active population\"},\"births\":{\"country\":\"Country average\",\"place\":\"%{place}\",\"province\":\"Province average\",\"title\":\"Birth rate\"},\"budget_by_inhabitant\":{\"title\":\"Budget per inhabitant\"},\"cars\":{\"title\":\"Cars per inhabitant\"},\"cars_tax\":{\"figure_first\":\"%{place}\",\"figure_second\":\"province average\",\"title\":\"Passenger cars tax\"},\"companies\":{\"title\":\"Companies\"},\"construction_tax\":{\"figure_first\":\"%{place}\",\"figure_second\":\"province average\",\"title\":\"Construction tax\"},\"contracts_comparison\":{\"figure_first\":\"short term\",\"figure_second\":\"long term\",\"title\":\"Contracts in the last month\"},\"contracts_sector\":{\"agriculture\":\"Agriculture\",\"construction\":\"Construction\",\"industry\":\"Industry\",\"services\":\"Services\",\"title\":\"Contracts by sector\"},\"deaths\":{\"country\":\"Country average\",\"place\":\"%{place}\",\"province\":\"Province average\",\"title\":\"Death rate\"},\"debt_by_inhabitant\":{\"title\":\"Debt by inhabitant\"},\"economic_tax\":{\"title\":\"Economic activity tax\"},\"freelancers\":{\"title\":\"Freelancers\"},\"frequency\":\"Updated %{type}\",\"houses\":{\"figure_first\":\"family houses\",\"figure_second\":\"main houses\",\"title\":\"Houses\"},\"ibi\":{\"first_column\":\"\",\"second_column\":\"City\",\"third_column\":\"Rustic\",\"title\":\"Land value tax\"},\"income\":{\"first_column\":\"\",\"second_column\":\"Gross\",\"third_column\":\"Net\",\"title\":\"Municipality income\"},\"income_overview\":{\"figure_first\":\"%{place}\",\"figure_second\":\"Spain\",\"title\":\"Gross income\"},\"investment_by_inhabitant\":{\"title\":\"Investment by inhabitant\"},\"meta\":{\"time\":\" in \",\"where\":\"At \"},\"population\":{\"title\":\"Inhabitants\"},\"ss_members\":{\"title\":\"Social Security affiliates\"},\"unemployed_sector\":{\"agriculture\":\"Agriculture\",\"construction\":\"Construction\",\"industry\":\"Industry\",\"services\":\"Services\",\"title\":\"Unemployed by sector\"},\"updated\":\"Last update\"},\"graphics\":{\"age_distribution\":{\"axis\":\"years\",\"label\":\"inhabitants\",\"title\":\"Discover the age distribution of your municipality\"},\"population_pyramid\":{\"adults\":\"Employed population\",\"age\":\"Age\",\"country\":\"Spain\",\"elderly\":\"Elderly\",\"elderly_info\":\"The %{percent} of the population is elder than %{limit} years\",\"mean\":\"Average age: %{age} years\",\"median\":\"Median age: %{age} years\",\"men\":\"Men\",\"mode\":\"Most common age: %{age} years\",\"unemployed\":\"Unemployed\",\"women\":\"Women\",\"youth\":\"Minors\",\"youth_info\":\"The %{percent} of the population is younger than %{limit} years\"},\"rent_distribution\":{\"gross_income\":\"Gross income\",\"inhabitants\":\"Inhabitants\",\"million\":\"million\",\"thousand\":\"thousand\",\"title\":\"Wealth and population in the province\"},\"unemployment_age\":{\"between_25_44\":\"Between 25 and 44\",\"less_25\":\"Younger than 25\",\"more_44\":\"Older than 44\",\"title\":\"Unemployment by age\"},\"unemployment_rate\":{\"country\":\"Spain\",\"title\":\"Unemployment rate comparison\"},\"unemployment_sex\":{\"men\":\"Men\",\"title\":\"Unemployment by sex\",\"women\":\"Women\"}},\"inhabitants\":\"inh\",\"intro\":\"Understand %{place} through its main figures: the population, the employment market and the economy.\",\"layouts\":{\"application\":{\"observatory\":\"Observatory\"},\"menu_subsections\":{\"banner_map\":\"A geographic viewer to explore the demographic structure of %{place}\",\"demographic_observatory\":\"Demographic observatory\",\"economia\":\"Employment\",\"empleo\":\"Economy\",\"poblacion\":\"Population\"}}},\"gobierto_people\":{\"departments\":{\"index\":{\"description\":\"Any organization that meets with an official must register as an interest group, and a record of the meetings is created. \\\\u003ca href=\\\\\"https://web.gencat.cat/en/tramits/tramits-temes/registre-grups-interes\\\\\"\\\\u003eLearn more about Interest Groups Policies\\\\u003c/a\\\\u003e. Explore organizations (companies, foundations, associations ...) that meet with officials of Generalitat.\",\"events\":\"registered events\",\"events_by_department\":\"Events by departments\",\"explore_departments\":\"Explore Departments and Officials\",\"explore_people\":\"Explore the agendas of Officials\",\"people_events\":\"Officials with more events\",\"people_with_events\":\"officials with registered events\",\"punchcard_title\":\"Meetings per departments and month\"},\"show\":{\"interest_groups_box_subtitle\":\"with meetings in the period\",\"interest_groups_box_title\":\"Interest groups\",\"interest_groups_box_title_single\":\"Interest group\",\"interest_groups_rowchart_title\":\"Interest groups with most meetings with this department\",\"interest_groups_with_events\":\"interest groups have met with this department\",\"map_title\":\"Where do officials travel?\",\"meetings_box_subtitle\":\"with interest groups\",\"meetings_box_title\":\"Meetings registered\",\"meetings_box_title_single\":\"Meeting registered\",\"people_box_subtitle\":\"with meetings registered\",\"people_box_title\":\"officials in this department\",\"people_box_title_single\":\"official in this department\",\"people_rowchart_title\":\"Officials of this department with most meetings\",\"people_with_events\":\"officials of this department with registered events\",\"punchcard_title\":\"Meetings per official and month\"}},\"events\":{\"gobierto_people_person_post_published\":\"Blog updated: %{subject_name}\",\"gobierto_people_person_post_updated\":\"Post updated: %{subject_name}\",\"gobierto_people_person_published\":\"New person published: %{subject_name}\",\"gobierto_people_person_statement_published\":\"New statement published: %{subject_name}\",\"gobierto_people_person_statement_updated\":\"Statement updated: %{subject_name}\",\"gobierto_people_person_updated\":\"Personal information updated\"},\"exports\":{\"index\":{\"events\":{\"description\":\"Listing of all events (past and future) with title, description, participants, location, etc.\",\"title\":\"Agendas\"},\"people\":{\"description\":\"Listing of officiald with their contact information, biography, CV, etc.\",\"title\":\"Officials\"},\"posts\":{\"description\":\"Latest posts in all blogs.\",\"title\":\"Blogs\"},\"statements\":{\"description\":\"Listing of all statements and it elements.\",\"title\":\"Statements\"}}},\"gifts\":{\"coc\":\"The Code of Conduct regulates what gifts can be received.\",\"description\":\"Officials receive gifts as a courtesy from organizations with which they meet. Here is the inventory of what has been received\",\"last\":\"Last gifts\",\"none\":\"No gifts have been registered in this period\",\"title\":\"Gifts\"},\"interest_groups\":{\"index\":{\"description\":\"Any organization that meets with an official must register as an interest group and a record of the meetings is created. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eLearn more about the Interest Groups Regulations\\\\u003c/a\\\\u003e. Explore organizations (companies, foundations, associations ...) that meet with officials of the Generalitat\",\"interest_groups\":\"registered interest groups\",\"no_data\":\"There is no data for the selected dates\",\"rowchart_title\":\"Interest groups with most meetings\",\"title\":\"Interest Groups\"},\"show\":{\"event\":\"registered event\",\"events\":\"registered events\",\"events_by_department\":\"With which departments does this group meet?\",\"events_by_person\":\"Officials with which this group has met\",\"explore_departments\":\"Explore Departments and Officials\",\"explore_people\":\"Explore the agendas of Officials\",\"people_with_events\":\"the number of Officials with which this group has met\",\"punchcard_title\":\"Meetings per official and month\",\"status\":\"Inscription status in interest groups registry: %{status}\"}},\"invitations\":{\"coc\":\"The Code of Conduct regulates which invitations can be accepted.\",\"description\":\"Officials receive invitations to events, to make visits, give lectures... Here is a list of accepted invitations.\",\"last\":\"Last invitations\",\"none\":\"No invitations have been registered in this period\",\"title\":\"Invitations\"},\"layouts\":{\"application\":{\"title\":\"Officials and Agendas\"},\"departments\":{\"no_departments_within_dates\":\"There are no departments for this date range\"},\"menu_subsections\":{\"agendas\":\"Agendas\",\"blogs\":\"Blogs\",\"departments\":\"Departments\",\"gifts\":\"Gifts\",\"interest_groups\":\"Interest Groups\",\"invitations\":\"Invitations\",\"people\":\"Officials\",\"statements\":\"Statements\",\"trips\":\"Trips\"}},\"people\":{\"contact_methods\":{\"send_email\":\"Send an email\"},\"gifts\":{\"index\":{\"gifts\":\"Gifts\",\"no_gifts\":\"There are no gifts in the given dates\",\"title\":\"Gifts received by %{person_name}\"}},\"google_calendar\":{\"authorization\":{\"new\":{\"success\":\"Configuration stored successfully. One last step, pick which calendas you want to automatically publish in your agenda.\"}},\"calendars\":{\"edit\":{\"explain\":\"Select which calendars you want to automatically publish in your agenda\",\"save\":\"Save\",\"title\":\"Google Calendar integration\"},\"update\":{\"success\":\"Calendars saved successfully.\"}}},\"index\":{\"department_officials\":\"Officials in %{department_name}\",\"no_people_within_range\":\"There are no officials for this date range\",\"subscribable_box\":{\"title\":\"Receive alerts in your inbox\"},\"title\":\"%{site_name}\\'s organization chart\"},\"invitations\":{\"index\":{\"invitations\":\"Invitations\",\"no_invitations\":\"There are no invitations in the given dates\",\"title\":\"Invitations received by %{person_name}\"}},\"latest_activity\":{\"no_activity\":\"This profile has not registered any activity yet.\",\"title\":\"Latest activity\"},\"navigation\":{\"agenda\":\"Agenda\",\"bio\":\"Biography and CV\",\"blog\":\"Blog\",\"gift_received\":\"gift received\",\"gifts\":\"Gifts\",\"gifts_received\":\"gifts received\",\"interest_group\":\"interest group\",\"interest_groups\":\"interest groups\",\"invitation\":\"invitation\",\"invitations\":\"invitations\",\"meeting_with\":\"meeting with\",\"meetings_with\":\"meetings with\",\"statements\":\"Goods and Activities\",\"trip_made\":\"trip made\",\"trips\":\"Trips\",\"trips_made\":\"trips made\"},\"people_filter\":{\"organigram\":\"%{name} organigram\",\"political_groups\":\"%{name} political groups\"},\"person\":{\"picture\":\"Picture of %{name}\"},\"person_bio\":{\"show\":{\"download\":\"Download CV\",\"subtitle\":\"Biography and CV\",\"title\":\"%{person_name}\\'s profile\"}},\"person_events\":{\"index\":{\"agenda\":\"Agenda\",\"no_events\":\"There are no meetings in the given dates\",\"past_events\":\"Past events\",\"title\":\"%{person_name}\\'s agenda\",\"upcoming_events\":\"Agenda\"},\"show\":{\"event_data\":{\"event_attachments\":\"Documents\",\"event_attendees\":\"Attendees\",\"event_locations\":\"Location\"},\"title\":\"%{person_name}\\'s agenda\"}},\"person_messages\":{\"create\":{\"error\":\"Message couldn\\'t be sent\",\"success\":\"Message sent successfully\"},\"new\":{\"placeholders\":{\"body\":\"Write a message\",\"email\":\"Your email\",\"name\":\"Your name\"},\"submit\":\"Send\",\"title\":\"Send a message %{name}\"}},\"person_post_tags\":{\"show\":{\"filtering_by_tag\":\"Filtering by \\\\\"%{tag}\\\\\"\",\"go_back\":\"Back to blog\"}},\"person_posts\":{\"index\":{\"no_posts\":\"There aren\\'t posts published.\",\"title\":\"%{person_name}, %{person_charge}\\'s blog\"},\"show\":{\"title\":\"%{person_name}, %{person_charge}\\'s blog\"}},\"person_statements\":{\"index\":{\"no_statements\":\"There aren\\'t yet statems for this person.\",\"title\":\"%{person_name}\\'s goods and Activities\"},\"show\":{\"download\":\"Download statement (%{file_size})\",\"title\":\"%{person_name}\\'s goods and Activities\",\"view_previous\":\"View previous\"}},\"show\":{\"events_section_title\":\"Last meetings\",\"gifts_section_title\":\"Last gifts\",\"invitations_section_title\":\"Last invitations\",\"no_data\":\"There is no data in the given dates\",\"party\":{\"government\":\"Government\",\"opposition\":\"Oposition\"},\"trips_section_title\":\"Last trips\"},\"subscription_button\":{\"cancel\":\"Cancel\",\"follow\":\"Folloe\"},\"trips\":{\"index\":{\"no_trips\":\"There are no trips in the given dates\",\"title\":\"Trips made by %{person_name}\",\"trips\":\"Trips\"},\"trip\":{\"accomodation_expenses\":\"Accomodation\",\"by\":\"by\",\"company\":\"Trip party\",\"expenses\":\"Expenses\",\"food_expenses\":\"Food\",\"in\":\"in\",\"meeting_name\":{\"one\":\"meeting\",\"other\":\"meetings\"},\"other_expenses\":\"Other expenses\",\"person_name\":{\"one\":\"person\",\"other\":\"people\"},\"total_expenses\":\"Total expenses\",\"transport_expenses\":\"Transport\"}},\"upcoming_events\":{\"no_upcoming_events\":\"Ther eare no upcoming events\",\"title\":\"Agenda\",\"view_all\":\"View all\"}},\"people_filter\":{\"all\":\"All\",\"categories\":{\"executive\":\"Executive\"},\"parties\":{\"government\":\"Government Team\",\"opposition\":\"Opposition\"},\"political_groups\":{\"title\":\"Political groups\"}},\"person_events\":{\"index\":{\"agenda_switcher\":{\"subtitle\":\"Filter by community members\",\"title\":\"Check the agenda of...\"},\"displaying_events_of\":\"Displaying events of %{date}\",\"go_back\":\"Go back\",\"no_events\":\"There are no future or past events.\",\"no_past_events\":\"There are no past events.\",\"no_upcoming_events\":\"There are no future events. Take a look at past ones\",\"past_events\":\"Past events\",\"subscribable_box\":{\"title\":\"Receive a summary of the agendas of your representatives\"},\"title\":\"%{site_name}\\'s member agendas\",\"upcoming_events\":\"Agenda\"},\"person_events_filter\":{\"agenda\":\"%{name} members agenda\"}},\"person_gifts\":{\"index\":{\"error\":\"We have not found the page you were looking for\"}},\"person_mailer\":{\"new_message\":{\"hi\":\"Hi\",\"new_message\":\"You have a new message from %{name} (%{reply_to})\",\"subject\":\"You have received a new message from %{name}\"}},\"person_post_tags\":{\"show\":{\"filtering_by_tag\":\"Filtering by \\\\\"%{tag}\\\\\"\",\"go_back\":\"Go back\"}},\"person_posts\":{\"index\":{\"subscribable_box\":{\"title\":\"Receive alerts in your inbox\"},\"switcher\":{\"subtitle\":\"Filter by community members\",\"title\":\"Check posts from...\"},\"title\":\"Blogs\"},\"person_post_excerpt\":{\"continue\":\"Continue reading\"}},\"person_statements\":{\"index\":{\"subscribable_box\":{\"title\":\"Receive alerts in your inbox\"},\"switcher\":{\"subtitle\":\"Filter by community members\",\"title\":\"Check statements from...\"},\"title\":\"Statements\"}},\"person_trips\":{\"index\":{\"error\":\"We have not found the page you were looking for\"}},\"shared\":{\"app_breadcrumb_title\":\"Public management activity viewer\",\"app_title\":\"Public management activity derived from the Code of Conduct\",\"check_it_out\":\"Check the text of the Code of Conduct\",\"datepicker\":{\"1m\":\"Last month\",\"1y\":\"Last year\",\"3m\":\"Last three months\",\"all\":\"Everything\",\"range\":\"Custom range\",\"today\":\"Today\"},\"datepicker_fixed\":\"Data corresponding to the period\",\"destination\":\"destination\",\"destinations\":\"destinations\",\"displacement\":\"displacement\",\"displacements\":\"displacements\",\"from\":\"from\",\"locales\":{\"locale\":\"Language\",\"page_locale\":\"Page locale\",\"select_locale\":\"Select language\"},\"meetings_punchcard\":{\"tooltip\":\"meetings\",\"tooltip_single\":\"meeting\"},\"meetings_rowchart\":{\"tooltip\":\"meetings\",\"tooltip_single\":\"meeting\"},\"noresults\":\"No results\",\"open_data_footer\":{\"gifts\":\"Gifts\",\"invitations\":\"Invitations\",\"meetings\":\"Meetings\",\"title\":\"Access the data in the Open Data portal\",\"trips\":\"Trips\"},\"table_item\":{\"view_details\":\"View details\"},\"to\":\"to\",\"view_all\":\"View all\",\"view_all_f\":\"View all\",\"view_charges\":\"View all positions\",\"view_details\":\"View details\",\"view_gifts\":\"View all the gifts on the Open Data portal\",\"view_invitations\":\"View all the invitations on the Open Data portal\",\"view_officials\":\"View Officials\"},\"welcome\":{\"index\":{\"departments\":\"Departments\",\"departments_extra\":\"Departments that exist or have existed based on the selected period\",\"departments_rowchart_title\":\"Departments with most meetings\",\"description_1\":\"The viewer shows the meetings of the senior management of the Generalitat administration with the people who have the status of interest group in the time period you select. You will also find the gifts and invitations allowed by the Code of Conduct, which forces senior management to make this information public. Likewise, the viewer allows to consult the trips abroad of the President, advisors and senior positions in the exercise of their functions.\",\"description_2_html\":\"Regarding the information of the senior management, the positions that they occupy or have occupied in the selected period are shown.\",\"events_summary\":{\"no_events\":\"There are no events\",\"no_upcoming_events\":\"There are no future events. Take a look at past ones\",\"past_events\":\"Past events\",\"upcoming_events\":\"Agenda\",\"view_all\":\"View all\"},\"gifts\":\"Gifts\",\"interest_groups_box_subtitle\":\"with meetings in the period\",\"interest_groups_box_title\":\"Interest groups\",\"interest_groups_box_title_single\":\"Interest group\",\"interest_groups_rowchart_title\":\"Interest groups with most meetings\",\"map_title\":\"Where do officials travel?\",\"meetings_box_subtitle\":\"with interest groups\",\"meetings_box_title\":\"Meetings registered\",\"meetings_box_title_single\":\"Meeting registered\",\"people_box_subtitle\":\"with registered activity\",\"people_box_title\":\"Officials\",\"people_box_title_single\":\"Official\",\"people_rowchart_title\":\"Officials with most meetings\",\"people_summary\":{\"no_people\":\"There is no people\",\"title\":\"%{site_name}\\'s organization chart\",\"view_all\":\"View all\"},\"posts_summary\":{\"title\":\"Blogs\",\"view_all\":\"View all\"},\"punchcard_title\":\"Meetings per official and month\",\"search\":\"Search\",\"search_placeholder\":\"Search an official\",\"statements\":\"Salaries and retributions\",\"subscribable_box\":{\"title\":\"Receive updates in your inbox\"},\"title\":\"Agendas\",\"trips\":\"Trips\"}}},\"gobierto_plans\":{\"custom_fields_plugins\":{\"budgets\":{\"detail_text\":\"see detail in Budgets\",\"title\":\"Budget\"}},\"events\":{\"gobierto_plans_plan_created\":\"Plan created\",\"gobierto_plans_plan_data_csv_imported\":\"Plan data imported from CSV file\",\"gobierto_plans_plan_type_created\":\"Plan type created\",\"gobierto_plans_plan_type_updated\":\"Plan type updated\",\"gobierto_plans_plan_updated\":\"Plan updated\",\"gobierto_plans_progresses_updated\":\"Projects progresses updated\",\"gobierto_plans_project_created\":\"Project created\",\"gobierto_plans_project_destroyed\":\"Project deleted from plan\",\"gobierto_plans_project_updated\":\"Project updated\"},\"layouts\":{\"application\":{\"plans\":\"Plans\"}},\"plan_types\":{\"sdg\":{\"header\":{\"sdgs_description\":\"The Sustainable Development Goals are a set of global goals related to the environmental, political, and economic challenges facing our world. Here you can see how the Municipal Action Plan connects with the SDGs.\",\"sdgs_title\":\"Sustainable Development Goals\"},\"projects\":{\"sdg_projects_empty\":\"There are no plan %{projects_term} related to this Goal\",\"sdg_projects_title\":\"Plan %{projects_term} related to this Goal\"}},\"show\":{\"category\":\"Category\",\"customize_columns\":\"Customize columns\",\"dashboards\":\"Dashboards\",\"desc\":\"Description\",\"ends\":\"End\",\"global_execution\":\"State of global execution\",\"latest_update_html\":\"\\\\u003cstrong\\\\u003eLatest update:\\\\u003c/strong\\\\u003e %{date}\",\"loading\":\"Loading...\",\"percent_out_of_total\":\"% out of total\",\"plan\":\"Plan\",\"progress\":\"Progress\",\"read_less\":\"Read more\",\"read_more\":\"Read less\",\"starts\":\"Start\",\"status\":\"Status\",\"view_by\":\"View by\"}}},\"gobierto_visualizations\":{\"layouts\":{\"application\":{\"gobierto_visualizations\":{\"contracts\":\"Contracts and tenders\",\"costs\":\"Costs\",\"debts\":\"Debt\",\"odss\":\"ODS\",\"subsidies\":\"Subsidies\"}}},\"shared\":{\"download_data\":\"Download the full dataset in a reusable format\",\"loading\":\"Loading data...\"},\"visualizations\":{\"categories\":{\"agriculture\":\"Agriculture\",\"architecture\":\"Architecture\",\"audiovisual\":\"Audiovisual\",\"catering\":\"Catering\",\"construction\":\"Construction\",\"culture\":\"Culture\",\"education\":\"Education\",\"electrical\":\"Electrical\",\"energy\":\"Energy\",\"environment\":\"Environment\",\"finance\":\"Finance\",\"furniture\":\"Furniture\",\"health\":\"Health\",\"industry\":\"Industry\",\"it\":\"Information technology\",\"legal\":\"Legal\",\"maintenance\":\"Maintenance\",\"other\":\"Other\",\"print\":\"Print\",\"public_services\":\"Public services\",\"real_estate\":\"Real estate\",\"security\":\"Security\",\"social_services\":\"Social services\",\"software\":\"Software\",\"telecom\":\"Telecom\",\"textile\":\"Textile\",\"transportation\":\"Transportation\"},\"contract_statuses\":{\"abandoned\":\"Abandoned\",\"awarded\":\"Awarded\",\"finally_awarded\":\"Finally awarded\",\"finally_void\":\"Void\",\"formalized\":\"Formalized\",\"highest_rated\":\"Highest rated\",\"provisionally_awarded\":\"Provisionally awarded\",\"provisionally_void\":\"Provisionally void\",\"revoked\":\"Revoked\",\"void\":\"Void\"},\"contract_types\":{\"construction\":\"Construction\",\"other\":\"Others\",\"patrimonial\":\"Patrimonial\",\"private_contract\":\"Private\",\"public_private_collaboration\":\"Collaboration between the public and private sectors\",\"public_services_management\":\"Management of public services\",\"public_works\":\"Concession of public services\",\"services\":\"Services\",\"special_administrative\":\"Special administrative\",\"supplies\":\"Supplies\"},\"contracts\":{\"amount_by_type_of_process\":\"Amount by type of process\",\"amount_distribution\":\"Amount distribution\",\"assignee\":\"Assignee\",\"categories\":\"Categories\",\"contract\":\"Contract\",\"contract_amount\":\"Contract Amount\",\"contract_type\":\"Type of contract\",\"contractor\":\"Contractor\",\"contracts\":\"Contracts\",\"contracts_assigned_to\":\"Contracts assigned to\",\"contracts_show\":{\"assignee_description\":\"Company that has won the contract (Assignee)\",\"assignees_description\":\"Companies that have won the contract (Assignees)\",\"awarding_entity\":\"Awarding entity\",\"batch\":\"Batch\",\"bid_description\":\"Bid base budget without taxes\",\"bidders_description\":\"Number of companies that have submitted to the process (Bidders)\",\"contract_amount\":\"Contract amount\",\"entity\":\"Entity\",\"estimated_value\":\"Estimated value\",\"external_source\":\"Source\",\"formalization\":\"Formalization\",\"process\":\"Procedure\",\"question_description\":\"What % of the budget is this contract?\",\"tender\":\"Tender\",\"type\":\"Type\"},\"date\":\"Date\",\"dates\":\"Dates\",\"description\":\"Visualizations and analisys for the awarded contracts and tenders to %{entity_name}\",\"entities\":\"Entities\",\"final_amount_no_taxes\":\"Amount\",\"formalization_date\":\"Date of formalization\",\"fromto\":\"From To No Contr.\",\"main_assignees\":\"Main assignees\",\"more\":\"More than\",\"nav\":{\"contracts\":\"Contracts\",\"summary\":\"Summary\",\"tenders\":\"Tenders\"},\"process_type\":\"Type of procedure\",\"search_placeholder\":\"Search by assignee or by contract title\",\"status\":\"Status\",\"submission_date\":\"Date\",\"summary\":{\"contracts\":\"Assigned contracts\",\"contracts_for\":\"contracts for a total amount of\",\"mean_amount\":\"Average amount\",\"median_amount\":\"Median amount\",\"tenders\":\"Tenders\",\"tenders_for\":\"tenders for a total amount of\",\"tip_1\":\"The %{strong1} of contracts are less than %{strong2}\",\"tip_2\":\"The largest contract means a %{strong} of all the spending\",\"tip_3\":\"The %{strong} of contracts accumulate the 50% of all the spending\"},\"tender_amount\":\"Tender Amount\",\"tender_date\":\"Date of tender\",\"title\":\"Contracts and tenders\"},\"costs\":{\"activities\":\"Activities\",\"cost_direct\":\"Direct cost\",\"cost_indirect\":\"Indirect cost\",\"cost_inhabitant\":\"Cost / inhabitant\",\"cost_per_inhabitant\":\"Cost per inhabitant\",\"coverage\":\"Cobertura\",\"description\":\"The %{entity_name} provides services to its citizens based on their competencies. This provision of services involves a cost that is covered by the income available to the City Council, which are derived from the service itself to be provided or from general resources of the taxes or subsidies received.\",\"description_2\":\"This section shows the data on the costs of the services and the income needed to provide them.\",\"description_3\":\"The starting point is the municipal budget, but with this analysis the real cost of a service is expanded and specified as we can find related the indirect (support) cost required to provide a service.\",\"detail\":\"Detail\",\"distribution\":\"Distribution of costs by area\",\"home\":\"Home\",\"income\":\"Income\",\"inhabitants\":\"Habitants\",\"item\":{\"competence\":\"Competence\",\"description\":\"Description\",\"equipments\":\"Equipments\",\"external_services\":\"External services\",\"goods_and_services\":\"Goods and services\",\"income_cost\":\"Income - Cost\",\"legal_framework\":\"Legal framework\",\"observation\":\"Observations\",\"personal_cost\":\"Personal cost\",\"public_tax\":\"Public tax or prices\",\"subsidies\":\"Subsidies\",\"total\":\"Total\",\"transference\":\"Transference\",\"types\":\"Types\"},\"per_inhabitant\":\"per inhabitant\",\"see_all\":\"See all\",\"title\":\"Costs\",\"tooltips\":{\"cost_direct\":\"Resources needed to provide a finalist service or activity that is directly related.\",\"cost_indirect\":\"Resources for the provision of non-finalist services and which are necessary support for the performance of finalist services and activities.\",\"cost_per_habitant\":\"Total cost divided by the number of inhabitants.\",\"cost_total\":\"Sum of direct cost and indirect cost.\",\"coverage\":\"State of coverage of income directly related to the total cost of the activity or service.\",\"income\":\"Revenue directly related to the provision of the service, whether derived from the application of a public fee or price or a subsidy.\"},\"tooltips_items\":{\"cost_indirect\":\"An equal part of the cost of non-finalist activities (human resources, financial services).\",\"coverage\":\"Measure (in%) to which the income directly related to the activity is sufficient to cover its cost.\",\"equipments\":\"Proportional cost of using the infrastructure necessary for the provision of the activity or service (consumption and maintenance of buildings, vehicles) depending on the degree of use.\",\"externalServices\":\"Miscellaneous services acquired by the City Council and benefits for legal or natural persons not included in the staff.\",\"goodsServices\":\"Monetary assessment of the consumption of necessary and non-storable consumable material essential for the provision of the business or service (supply, office supplies).\",\"income_cost\":\"Difference between the set of income directly related to the activity and the cost required to provide it. A negative balance indicates the insufficiency of specific resources and the need for financing with general funds from the City Council.\",\"staff_cost\":\"Annual calculation of the part of the salaries and wages of the workers proportional to their dedication to the activity.\",\"subsidies\":\"Income without direct compensation by the beneficiary, intended for a specific activity or project.\",\"taxes\":\"Financial consideration received for the provision of a service or the private use or exclusive use of the public domain.\",\"transferences\":\"Contributions of financial resources from the City Council as a previously granted subsidy.\"},\"total\":\"Total cost\",\"total_cost\":\"Total cost\"},\"debts\":{\"breakdown_debt\":\"Debt breakdown\",\"creditor\":\"Per creditor\",\"date_debt\":\"Debt data as of December 31, 2025.\",\"debtor\":\"Per debtor\",\"description\":\"La deuda financiera y a largo plazo del Ayuntamiento englova la deuda de todos sus entes dependientes (Sociedades Mercantiles, EPE\u2019s, Fundacio\u00F3ns, Consorcios).\",\"evolution_debt\":\"Debt evolution\",\"millions\":\"The unit of the numbers in this chart is millions of euros.\",\"title\":\"Debt\",\"total_debt\":\"Total debt\"},\"odss\":{\"amount\":\"Amount\",\"assigned\":\"Aligned\",\"description_html\":\"\\\\u003cp\\\\u003eSince 2015, the UN has approved the Agenda 2030, incorporating the 17 Sustainable Development Goals (SDGs), and establishing a transformative vision towards economic, social and environmental sustainability, this City Council has collaborated in opening a new path to improve the life of all and everyone, without leaving anyone behind.\\\\u003c/p\\\\u003e \\\\u003cp\\\\u003eIt is for this reason that after presenting the Municipal Strategic Plan 2023-2027 aligned with the SDGs, the alignment of the municipal budget with the Agenda 2030 is being competed.\\\\u003c/p\\\\u003e \\\\u003cp\\\\u003eThe budget viewer allows a better evaluation of the appropriateness of the resources used and the political priorities, and contributes to directing efforts towards the areas where greater focus is needed.\\\\u003c/p\\\\u003e \\\\u003cp\\\\u003eThis tool is designed to offer the public a comprehensive view of the degree of alignment of the municipal expenses of this year with the achievement of the SDGs.\\\\u003c/p\\\\u003e\",\"functional_code\":\"Functional code\",\"label_title_budgets_ods\":\"Distribution of budget lines by ODS\",\"label_title_ods\":\"Distribution of expense by Sustainable Development Goals\",\"name\":\"Name\",\"ods_distribution\":\"ODS distribution\",\"title\":\"Budget aligned with the Sustainable Development Goals (ODS)\",\"unassigned\":\"Unaligned\",\"updated_date\":\"Data updated on March 18, 2025\"},\"process_types\":{\"based_on_agreement\":\"Based on Marco agreement\",\"competitive_dialogue\":\"Competitive dialogue\",\"dynamic_acquisition\":\"Based on dynamic acquisition system\",\"innovation\":\"Association for innovation\",\"innovation_derived\":\"Derived from association for innovation\",\"internal_rules\":\"Internal rules\",\"minor_contract\":\"Minor contract\",\"negotiated\":\"Negotiated\",\"negotiated_with_publicity\":\"Negotiated with publicity\",\"negotiated_without_publicity\":\"Negotiated without publicity\",\"open\":\"Open\",\"open_simplified\":\"Open simplified\",\"others\":\"Others\",\"project_competition\":\"Project competition\",\"restricted\":\"Restricted\"},\"subsidies\":{\"amount\":\"Amount\",\"amount_distribution\":\"Amount distribution\",\"beneficiary\":\"Beneficiary\",\"call\":\"Call\",\"category\":\"Category\",\"date\":\"Date\",\"dates\":\"Dates\",\"description\":\"Visualizations and analisys for the granted subsidies from %{entity_name}\",\"details\":\"In agreement with article 7.8 Real Decreto 130/2019, the information on awards to legal persons will remain published during the four calendar years following the year in which the aid was granted, and in the case of natural persons, publicity is limited to the awarding plus one years.\",\"fromto\":\"From To No Subs.\",\"main_beneficiaries\":\"Main beneficiaries\",\"more\":\"More than\",\"nav\":{\"subsidies\":\"Subsidies\",\"summary\":\"Summary\"},\"person\":\"Individual person\",\"subsidies\":\"Subsidies\",\"subsidies_amount\":\"Imp. Subsidie\",\"subsidies_total\":\"Total Subsidies\",\"summary\":{\"collective_subsidies_for\":\"to collectives for a total amount of\",\"individual_subsidies_for\":\"to individuals for a total amount of\",\"mean_amount\":\"Average amount\",\"median_amount\":\"Median amount\",\"subsidies\":\"Subsidies\",\"subsidies_for\":\"subsidies for a total amount of\",\"tip_1\":\"The %{strong1} of subsidies are less than %{strong2}\",\"tip_2\":\"The largest subsidy means a %{strong} of all the spending\",\"tip_3\":\"The %{strong} of subsidies accumulate the 50% of all the spending\"},\"title\":\"Subsidies\"},\"tender_statuses\":{\"awarded\":\"Awarded\",\"cancelled\":\"Cancelled\",\"evaluation\":\"Evaluation\",\"modified\":\"Modified\",\"partially_awarded\":\"Partially awarded\",\"partially_resolved\":\"Partially resolved\",\"prior_announcement\":\"Prior announcement\",\"prior_evaluation\":\"Prior evaluation\",\"provisionally_resolved\":\"Provisionally resolved\",\"published\":\"Oublished\",\"resolved\":\"Resolved\"},\"visualizations\":{\"title_beeswarm\":\"Contracts by type, volume, size and date\",\"tooltip_beeswarm\":\"Contract Amount\",\"tooltip_treemap\":\"total contracts\"}}},\"grammatical_particles\":{\"from\":\"from\",\"of\":\"of\",\"of_the\":{\"f\":\"de la\",\"m\":\"del\",\"n\":\"of the\"},\"our\":{\"f\":\"nuestra\",\"m\":\"nuestro\",\"n\":\"our\"},\"the\":{\"f\":\"la\",\"m\":\"el\",\"n\":\"the\"},\"to\":\"to\",\"your\":{\"f\":\"tu\",\"m\":\"tu\",\"n\":\"your\"}},\"helpers\":{\"page_entries_info\":{\"entry\":{\"one\":\"entry\",\"other\":\"entries\",\"zero\":\"entries\"},\"more_pages\":{\"display_entries\":\"Displaying %{entry_name} \\\\u003cb\\\\u003e%{first}\\\\u0026nbsp;-\\\\u0026nbsp;%{last}\\\\u003c/b\\\\u003e of \\\\u003cb\\\\u003e%{total}\\\\u003c/b\\\\u003e in total\"},\"one_page\":{\"display_entries\":{\"one\":\"Displaying \\\\u003cb\\\\u003e1\\\\u003c/b\\\\u003e %{entry_name}\",\"other\":\"Displaying \\\\u003cb\\\\u003eall %{count}\\\\u003c/b\\\\u003e %{entry_name}\",\"zero\":\"No %{entry_name} found\"}}},\"select\":{\"prompt\":\"Please select\"},\"submit\":{\"create\":\"Create\",\"submit\":\"Save\",\"update\":\"Update\"}},\"invisible_captcha\":{\"sentence_for_humans\":\"If you are human, ignore this field\",\"timestamp_error_message\":\"Sorry, that was too quick! Please resubmit.\"},\"issue\":{\"events\":{\"issue_description_translations_changed\":\"New theme created\"}},\"issues\":{\"events\":{\"issues_issue_created\":\"Theme created\",\"issues_issue_updated\":\"Theme updated\"}},\"layouts\":{\"accept_privacy_policy_signup\":\"By signing up you agree to the Privacy Policy\",\"application\":{\"disclaimer\":\"This is a demo of Gobierto, transparency and participation software\",\"more_information\":\"More info in gobierto.es\",\"search\":\"Search...\",\"session\":{\"alerts\":\"Your alerts\",\"login\":\"Login or sign up\",\"notifications\":\"Notifications\",\"sign_in\":\"Sign in\",\"sign_out\":\"Sign out\",\"title\":\"Your account\"},\"start\":\"Home\"},\"gobierto_budgets\":{\"application\":{\"about_the_data\":\"About the data\",\"disclaimer\":\"This is a demo of Gobierto, transparency and participation software\",\"is_open_source\":\"is open source created by\",\"more_information\":\"More info in gobierto.es\",\"session\":{\"admin\":\"Administration\",\"alerts\":\"Your alerts\",\"notifications\":\"Notifications\",\"sign_in\":\"Sign in\",\"sign_out\":\"Sign out\",\"title\":\"Your account\"}}},\"mailcheck\":{\"suggestion_message\":\"Did you mean\"},\"sandbox\":{\"application\":{\"about_the_data\":\"About the data\",\"disclaimer\":\"This is a demo of Gobierto, transparency and participation software\",\"is_open_source\":\"is open source created by\",\"more_information\":\"More info in gobierto.es\",\"session\":{\"admin\":\"Administration\",\"alerts\":\"Your alerts\",\"notifications\":\"Notifications\",\"sign_in\":\"Sign in\",\"sign_out\":\"Sign out\",\"title\":\"Your account\"}}},\"search\":{\"budget_line_item_expense\":\"Budget line - Expense\",\"budget_line_item_income\":\"Budget line - Income\",\"dataset_item\":\"Dataset\",\"drag_drop_instructions\":\"Drag and drop on the left side to place this page in the menu\",\"event_item\":\"Event\",\"no_results\":\"The search did not match any page. Try something like using more general terms or checking spelling.\",\"page_item\":\"Page\",\"person_item\":\"Biography\",\"person_post_item\":\"Post\",\"person_statement_item\":\"Statement\",\"plan_project_item\":\"Plan - Project/Action\",\"updated\":\"Updated\"}},\"locales\":{\"ca\":\"Catalan\",\"ca_short\":\"CA\",\"en\":\"English\",\"en_short\":\"EN\",\"es\":\"Spanish\",\"es_short\":\"ES\"},\"number\":{\"currency\":{\"format\":{\"delimiter\":\",\",\"format\":\"%n%u\",\"precision\":2,\"separator\":\".\",\"significant\":false,\"strip_insignificant_zeros\":false,\"unit\":\"\u20AC\"}},\"format\":{\"delimiter\":\",\",\"precision\":3,\"round_mode\":\"default\",\"separator\":\".\",\"significant\":false,\"strip_insignificant_zeros\":false},\"human\":{\"decimal_units\":{\"format\":\"%n %u\",\"units\":{\"billion\":\"Billion\",\"million\":\"Million\",\"quadrillion\":\"Quadrillion\",\"thousand\":\"Thousand\",\"trillion\":\"Trillion\",\"unit\":\"\"}},\"format\":{\"delimiter\":\"\",\"precision\":3,\"significant\":true,\"strip_insignificant_zeros\":true},\"storage_units\":{\"format\":\"%n %u\",\"units\":{\"byte\":{\"one\":\"Byte\",\"other\":\"Bytes\"},\"eb\":\"EB\",\"gb\":\"GB\",\"kb\":\"KB\",\"mb\":\"MB\",\"pb\":\"PB\",\"tb\":\"TB\"}}},\"nth\":{\"ordinalized\":{},\"ordinals\":{}},\"percentage\":{\"format\":{\"delimiter\":\"\",\"format\":\"%n%\"}},\"precision\":{\"format\":{\"delimiter\":\"\"}}},\"routes\":{\"bio\":\"bio\",\"department_people\":\"people/departments/:department_slug\",\"departments\":\"departments\",\"events\":\"agendas\",\"executive_category_events\":\"agendas/managers\",\"executive_category_past_events\":\"agendas/managers/past-events\",\"gifts\":\"gifts\",\"government\":\"government\",\"government_party_events\":\"agendas/government\",\"government_party_past_events\":\"agendas/government/past-events\",\"interest_groups\":\"interest-groups\",\"invitations\":\"invitations\",\"managers\":\"managers\",\"messages\":\"contact\",\"opposition\":\"opposition\",\"opposition_party_events\":\"agendas/opposition\",\"opposition_party_past_events\":\"agendas/opposition/past-events\",\"past_events\":\"agendas/past-events\",\"people\":\"people\",\"people_and_agendas\":\"people-and-agendas\",\"people_government\":\"people/government\",\"people_managers\":\"people/managers\",\"people_opposition\":\"people/opposition\",\"person_events\":\"agendas/:container_slug\",\"person_past_events\":\"agendas/:container_slug/past-events\",\"person_post_tags\":\"blogs/:person_slug/tags\",\"person_posts\":\"blogs/:person_slug\",\"person_statements\":\"statements/:person_slug\",\"political_groups\":\"people/political-groups\",\"post_tags\":\"blogs/tags\",\"posts\":\"blogs/posts\",\"statements\":\"statements\",\"trips\":\"trips\"},\"scopes\":{\"events\":{\"scopes_scope_created\":\"Scope created\",\"scopes_scope_updated\":\"Scope updated\"}},\"shared\":{\"currently\":\"currently\",\"download_open_data\":{\"exports\":\"Download data in a reusable format\"},\"poll_question\":{\"multiple_choice_msg\":\"You can choose several options\"},\"polls\":{\"no_unanswered_polls\":\"There are no polls to answer.\",\"opinion\":\"Opinion\"},\"previous\":\"previous\"},\"sites\":{\"events\":{\"sites_site_created\":\"Site created\",\"sites_site_destroyed\":\"Site deleted\",\"sites_site_modules_updated\":\"Site modules updated\",\"sites_site_updated\":\"Site updated\",\"sites_site_visibility_updated\":\"Site published\"}},\"support\":{\"array\":{\"last_word_connector\":\" and \",\"two_words_connector\":\" and \",\"words_connector\":\", \"}},\"time\":{\"am\":\"am\",\"formats\":{\"default\":\"%a, %d %b %Y %H:%M:%S %z\",\"from_to\":\"From %{starts} to %{ends}\",\"long\":\"%B %d, %Y %H:%M\",\"short\":\"%d %b %H:%M\"},\"pm\":\"pm\"},\"user\":{\"census_verifications\":{\"create\":{\"error\":\"We couldn\\'t verify your identity. Please check your information and try again. If the problem persists, ask to your local adminsitration\",\"notice\":\"Your identity has been verified successfully\"},\"form\":{\"verify\":\"Verify\"},\"messages\":{\"already_verified\":\"Your account is already verified\",\"comments\":{\"not_verified\":\"The contribution in which you want to participate requires to verify your register in %{site_name}. Please, confirm your data to continue (they\\'ll be verified against the register, if you are not registered we won\\'t be abile to verify yourself)\"},\"consultation_responses\":{\"not_verified\":\"The process in which you want to participate requires to verify your register in %{site_name}. Please, confirm your data to continue (they\\'ll be verified against the register, if you are not registered we won\\'t be abile to verify yourself)\"},\"contributions\":{\"not_verified\":\"The contribution in which you want to participate requires to verify your register in %{site_name}. Please, confirm your data to continue (they\\'ll be verified against the register, if you are not registered we won\\'t be abile to verify yourself)\"},\"flags\":{\"not_verified\":\"The contribution in which you want to participate requires to verify your register in %{site_name}. Please, confirm your data to continue (they\\'ll be verified against the register, if you are not registered we won\\'t be abile to verify yourself)\"},\"not_verified\":\"The process in which you want to participate requires to verify your register in %{site_name}. Please, confirm your data to continue (they\\'ll be verified against the register, if you are not registered we won\\'t be abile to verify yourself)\",\"poll_answers\":{\"not_verified\":\"The process in which you want to participate requires to verify your register in %{site_name}. Please, confirm your data to continue (they\\'ll be verified against the register, if you are not registered we won\\'t be abile to verify yourself)\"},\"process_contributions\":{\"not_verified\":\"The contribution in which you want to participate requires to verify your register in %{site_name}. Please, confirm your data to continue (they\\'ll be verified against the register, if you are not registered we won\\'t be abile to verify yourself)\"},\"votes\":{\"not_verified\":\"The contribution in which you want to participate requires to verify your register in %{site_name}. Please, confirm your data to continue (they\\'ll be verified against the register, if you are not registered we won\\'t be abile to verify yourself)\"}},\"new\":{\"title\":\"Confirm your identity\"}},\"confirmations\":{\"create\":{\"error\":\"The data you entered doesn\\'t seem to be valid. Please try again.\",\"success\":\"Signed in successfully\"},\"form\":{\"document_number_notice\":\"Document number\",\"gender\":{\"female\":\"Female\",\"male\":\"Male\"},\"hints\":{\"census_locked\":\"This information has been provided by the census, so it is not editable.\",\"date_of_birth\":\"This information will be considered private at all times.\",\"email\":\"Your email address will be considered private at all times.\",\"gender\":\"This information will be considered private at all times.\"},\"submit\":\"Save\",\"your_gender_is\":\"You are...\"},\"new\":{\"error\":\"This URL doesn\\'t seem to be valid\",\"title\":\"Let\\'s confirm your data:\"}},\"custom_sessions\":{\"create\":{\"invalid_data\":\"Invalid data received. The session could not be created\",\"not_confirmed\":\"Please check your inbox and follow the confirmation link to access the service\",\"success\":\"Signed in successfully\"},\"destroy\":{\"success\":\"Signed out successfully\"},\"null_strategy\":{\"edit_form\":{\"edit\":\"Add some fields to this form\",\"session_title\":\"Please, fill in the missing fields (Null strategy)\",\"submit\":\"Submit\"},\"new_form\":{\"session_title\":\"Sign in (Null strategy)\",\"submit\":\"Submit\"}}},\"layouts\":{\"menu_subsections\":{\"admin\":\"Settings\",\"alerts\":\"Alerts\",\"notifications\":\"Notifications\"}},\"notification_mailer\":{\"notification_digest\":{\"bye\":\"Cheers\",\"hi\":\"Hi\",\"manage_notifications\":\"Remember you can manage your notifications in %{url}\",\"manage_notifications_html\":\"Remember you can manager your notifications in \\\\u003ca href=\\'%{url}\\'\\\\u003eyour notifications page\\\\u003c/a\\\\u003e\",\"new_activity\":\"There\\'s new activity in %{site_name}\",\"subject\":\"Activity summary from %{site_name}\"},\"single_notification\":{\"bye\":\"Cheers\",\"hi\":\"Hi\",\"manage_notifications\":\"Remember you can manage your notifications in %{url}\",\"manage_notifications_html\":\"Remember you can manager your notifications in \\\\u003ca href=\\'%{url}\\'\\\\u003eyour notifications page\\\\u003c/a\\\\u003e\",\"new_activity\":\"There\\'s new activity in %{site_name}\",\"subject\":\"New activity in %{site_name}: %{action_name}\"}},\"notifications\":{\"index\":{\"no_new_notifications\":\"There are no new notifications\",\"title\":\"Recent activity\"}},\"passwords\":{\"create\":{\"error\":\"The email address specified doesn\\'t seem to be valid\",\"success\":\"Please check your inbox to get instructions\"},\"edit\":{\"error\":\"This URL doesn\\'t seem to be valid\",\"title\":\"Set your new password:\"},\"edit_form\":{\"submit\":\"Change\"},\"update\":{\"error\":\"There was a problem changing your password\",\"success\":\"Signed in successfully\"}},\"registrations\":{\"create\":{\"email_taken\":\"That email is already registered. Try login in or recovering your password\",\"error\":\"The data you entered doesn\\'t seem to be valid. Please try again.\",\"success\":\"Please check your inbox to confirm your email address\"}},\"sessions\":{\"create\":{\"error\":\"The data you entered doesn\\'t seem to be valid. Please try again.\",\"success\":\"Signed in successfully\"},\"destroy\":{\"success\":\"Signed out successfully\"},\"new\":{\"password_title\":\"Can\\'t remember your password? We help you out:\",\"registration_title\":\"New here? Create your account:\",\"session_title\":\"Are you already registered? Log in\"},\"new_password_form\":{\"session_section\":\"Just remembered your password? Log in here\",\"submit\":\"Recover\"},\"registration_form\":{\"submit\":\"Let\\'s go\"},\"session_form\":{\"password_section\":\"Password?\",\"submit\":\"Log in\"},\"user_already_authenticated\":\"You are already signed in.\",\"user_not_authorized\":\"You are not authorized.\",\"user_not_signed_in\":\"Register or sign in if you have an account to continue.\"},\"settings\":{\"form\":{\"gender\":{\"female\":\"Female\",\"male\":\"Male\"},\"hints\":{\"census_locked\":\"This information has been provided by the census, so it is not editable.\",\"date_of_birth\":\"This information will be considered private at all times.\",\"email\":\"Your email address will be considered private at all times.\",\"gender\":\"This information will be considered private at all times.\"},\"submit\":\"Save\",\"your_gender_is\":\"You are...\"},\"show\":{\"title\":\"Your account\"},\"update\":{\"error\":\"There was a problem when saving your settings\",\"success\":\"Settings saved successfully\"}},\"subscription_preferences\":{\"update\":{\"error\":\"Preferences couldn\\'t be updated: %{details}\",\"update_success\":\"Preferences updated successfully\"}},\"subscriptions\":{\"create\":{\"create_success\":\"Subscription was successfully created\",\"delete_success\":\"Subscription was successfully canceled\",\"error\":\"There was a problem when subscribing to this resource: %{details}. If you are already registered, sign in \\\\u003ca href=\\\\\"%{sign_in_path}\\\\\"\\\\u003ehere\\\\u003c/a\\\\u003e.\"},\"destroy\":{\"success\":\"Subscription was successfully canceled\"},\"index\":{\"areas\":\"Areas\",\"frequency\":\"Frequency\",\"modules\":{\"gobierto_budgets\":\"Budgets\",\"gobierto_observatory\":\"Observatory\",\"gobierto_people\":\"People\"},\"notification_frequency\":{\"daily\":\"Daily digest\",\"disabled\":\"Disabled\",\"hourly\":\"Hourly digest\",\"immediate\":\"Inmediate\",\"submit\":\"Save\",\"weekly\":\"Weekly digest\"},\"people\":\"People\",\"submit\":\"Save\",\"title\":\"Your alerts\",\"whole_site\":\"Whole site\"},\"subscribable_box\":{\"cancel\":\"Already subscribed. Cancel?\",\"form\":{\"placeholders\":{\"user_email\":\"Your e-mail\"},\"submit\":\"Subscribe\"},\"subscribe\":\"Subscribe\"},\"subscribable_button\":{\"event_followed\":\"Event followed!\",\"follow_event\":\"Follow event\",\"follow_group_process\":\"Follow group\",\"follow_issue\":\"Follow theme\",\"follow_person\":\"Follow person\",\"follow_process\":\"Follow process\",\"follow_scope\":\"Follow scope\",\"group_process_followed\":\"Group followed!\",\"issue_followed\":\"Theme followed!\",\"manage_subscriptions\":\"Manage your alerts\",\"person_followed\":\"Person followed!\",\"process_followed\":\"Process followed!\",\"scope_followed\":\"Scope followed!\"}},\"user_mailer\":{\"confirmation_instructions\":{\"bye\":\"Cheers\",\"click_link\":\"To complete your signup click the following link:\",\"hi\":\"Hi\",\"ignore_link\":\"if you didn\\'t register in %{site_name} you can ignore this message\",\"subject\":\"Complete your registration in %{site_name}\"},\"reset_password_instructions\":{\"bye\":\"Cheers\",\"click_link\":\"You have request to reset your password. Click the following link and follow the instructions:\",\"hi\":\"Hi\",\"subject\":\"Reset your password\"},\"welcome\":{\"alerts\":\"You can manage your notification preferences in this url: %{subscriptions_url}\",\"bye\":\"Cheers\",\"hi\":\"Hi\",\"subject\":\"Welcome\",\"success\":\"Your registration was successfully completed. Now you can interact in %{site_url} as registered user.\"}}},\"users\":{\"events\":{\"users_user_updated\":\"User updated\"}},\"views\":{\"delete\":\"Delete\",\"delete_confirm\":\"Are you sure? This operation can not be undone\",\"edit\":\"Edit\",\"forms\":{\"max_characters\":\"Max. %{length} characters\",\"required\":\"Required\",\"required_and_max_characters\":\"Required and M\u00E0x. %{length} car\u00E0cters\"},\"of\":\"of\",\"pagination\":{\"first\":\"\\\\u0026laquo; First\",\"last\":\"Last \\\\u0026raquo;\",\"next\":\"Next\",\"previous\":\"Prev\",\"truncate\":\"\\\\u0026hellip;\"},\"see\":{\"less\":\"see less\",\"more\":\"see more\"}}}'));\nI18n.translations[\"es\"] = I18n.extend((I18n.translations[\"es\"] || {}), JSON.parse('{\"activemodel\":{\"attributes\":{\"gobierto_admin/admin_confirmation_form\":{\"email\":\"Email\"},\"gobierto_admin/admin_edit_password_form\":{\"password\":\"Contrase\u00F1a\",\"password_confirmation\":\"Confirmaci\u00F3n de contrase\u00F1a\"},\"gobierto_admin/admin_form\":{\"email\":\"Email\",\"name\":\"Nombre\",\"password\":\"Contrase\u00F1a\",\"password_confirmation\":\"Confirmaci\u00F3n de contrase\u00F1a\",\"site_ids\":\"Sitios\",\"site_modules\":\"M\u00F3dulos\"},\"gobierto_admin/admin_group_form\":{\"name\":\"Nombre del grupo\"},\"gobierto_admin/admin_invitation_form\":{\"emails\":\"Emails\",\"site_ids\":\"Sitios\"},\"gobierto_admin/admin_new_password_form\":{\"email\":\"Email\"},\"gobierto_admin/file_attachment_form\":{\"description\":\"Descripci\u00F3n\",\"file_digest\":\"Este archivo\",\"name\":\"Nombre\"},\"gobierto_admin/gobierto_budgets/options_form\":{\"budgets_guide_page\":\"P\u00E1gina gu\u00EDa de presupuestos (si no se selecciona ninguna se mostrar\u00E1 el texto por defecto)\",\"comparison_compare_municipalities\":\"Mostrar municipios espec\u00EDficos\",\"comparison_context_table_enabled\":\"Mostrar tabla de contexto\",\"comparison_show_widget\":\"Mostrar widget comparaci\u00F3n\",\"comparison_tool_enabled\":\"Comparaci\u00F3n\",\"feedback_emails\":\"Correo-e para recibir participaciones\",\"receipt_configuration\":\"Configuraci\u00F3n del recibo\"},\"gobierto_admin/gobierto_calendars/calendar_configuration_form\":{\"ibm_notes_pwd\":\"La constrase\u00F1a\",\"ibm_notes_url\":\"La URL\",\"ibm_notes_usr\":\"Usuario\",\"microsoft_exchange_pwd\":\"La constrase\u00F1a\",\"microsoft_exchange_url\":\"La URL\",\"microsoft_exchange_usr\":\"Usuario\"},\"gobierto_admin/gobierto_calendars/event_form\":{\"attachment_file\":\"Fichero adjunto\",\"description\":\"Descripci\u00F3n\",\"ends_at\":\"Fecha de finalizaci\u00F3n\",\"starts_at\":\"Fecha de comienzo\",\"title\":\"T\u00EDtulo\",\"title_translations\":\"T\u00EDtulo\"},\"gobierto_admin/gobierto_cms/page_form\":{\"body\":\"Contenido\",\"published_on\":\"Fecha de publicaci\u00F3n\",\"slug\":\"URL\",\"title\":\"T\u00EDtulo\"},\"gobierto_admin/gobierto_cms/section_form\":{\"slug\":\"URL\",\"title\":\"T\u00EDtulo\"},\"gobierto_admin/gobierto_common/collection_form\":{\"container_global_id\":\"Contenedor\",\"container_id\":\"Contenedor\",\"item_type\":\"Tipo\",\"slug\":\"URL\",\"title\":\"T\u00EDtulo\"},\"gobierto_admin/gobierto_common/custom_field_form\":{\"date\":\"Fecha\",\"field_type\":\"Tipo de campo\",\"image\":\"Imagen\",\"indicators\":\"Indicadores\",\"localized_paragraph\":\"Texto largo\",\"localized_string\":\"Texto (l\u00EDnea)\",\"multiple_options\":\"Selecci\u00F3n m\u00FAltiple\",\"name\":\"Nombre\",\"numeric\":\"N\u00FAmero\",\"options\":\"Opciones\",\"paragraph\":\"Texto largo sin traducciones\",\"single_option\":\"Selecci\u00F3n \u00FAnica\",\"string\":\"Texto sin traducciones (l\u00EDnea)\",\"uid\":\"Identificador\",\"vocabulary_options\":\"Vocabulario\"},\"gobierto_admin/gobierto_common/term_form\":{\"description\":\"Descripci\u00F3n\",\"external_id\":\"ID externo\",\"name\":\"Nombre\",\"slug\":\"Slug\",\"term_id\":\"T\u00E9rmino Padre\"},\"gobierto_admin/gobierto_common/vocabulary_form\":{\"name\":\"Nombre\"},\"gobierto_admin/gobierto_data/dataset_form\":{\"name\":\"Nombre\",\"slug\":\"Slug\",\"table_name\":\"Nombre de la tabla\"},\"gobierto_admin/gobierto_data/settings_form\":{\"api_settings_max_dataset_size_for_queries\":\"M\u00E1ximo tama\u00F1o de datasets sin limitar la vista previa (MB)\",\"db_config\":\"Configuraci\u00F3n de la conexi\u00F3n a la base de datos\",\"frontend_enabled\":\"Interfaz p\u00FAblica visible\"},\"gobierto_admin/gobierto_investments/project_form\":{\"external_id\":\"ID externo\",\"title\":\"T\u00EDtulo\"},\"gobierto_admin/gobierto_observatory/settings_form\":{\"observatory_config\":\"Configuraci\u00F3n del observatorio\"},\"gobierto_admin/gobierto_people/person_form\":{\"avatar_file\":\"Avatar\",\"avatar_url\":\"Avatar\",\"bio\":\"Biograf\u00EDa\",\"bio_file\":\"Fichero adjunto\",\"bio_url\":\"Fichero adjunto\",\"category\":\"Categor\u00EDa\",\"charge\":\"Cargo\",\"email\":\"Correo-e\",\"name\":\"Nombre\",\"party\":\"Posici\u00F3n\",\"political_group_id\":\"Grupo pol\u00EDtico\"},\"gobierto_admin/gobierto_people/person_post_form\":{\"body\":\"Contenido\",\"tags\":\"Tags\",\"title\":\"T\u00EDtulo\"},\"gobierto_admin/gobierto_people/person_statement_form\":{\"attachment_file\":\"Fichero adjunto\",\"published_on\":\"Fecha de publicaci\u00F3n\",\"title\":\"T\u00EDtulo\",\"title_translations\":\"T\u00EDtulo\"},\"gobierto_admin/gobierto_people/political_group_form\":{\"name\":\"Nombre de la agrupaci\u00F3n\"},\"gobierto_admin/gobierto_plans/node_form\":{\"category_id\":\"Categor\u00EDa\",\"ends_at\":\"Fecha de fin\",\"name\":\"Proyecto\",\"progress\":\"Progreso\",\"starts_at\":\"Fecha de inicio\",\"status_id\":\"Estado\"},\"gobierto_admin/gobierto_plans/plan_form\":{\"configuration_data\":\"Configuraci\u00F3n\",\"css\":\"CSS\",\"csv_file\":\"Fichero CSV\",\"footer\":\"Pie de p\u00E1gina\",\"introduction\":\"Introducci\u00F3n\",\"plan_type_id\":\"Tipo\",\"slug\":\"url\",\"statuses_vocabulary_id\":\"Vocabulario de estados\",\"title\":\"T\u00EDtulo\",\"vocabulary_id\":\"Vocabulario de categor\u00EDas\",\"year\":\"A\u00F1o\"},\"gobierto_admin/gobierto_plans/plan_type_form\":{\"name\":\"Nombre\",\"slug\":\"url\"},\"gobierto_admin/gobierto_visualizations/settings_form\":{\"visualizations_config\":\"Configuraci\u00F3n de las visualizaciones\"},\"gobierto_admin/issue_form\":{\"name\":\"Nombre\",\"slug\":\"URL\"},\"gobierto_admin/scope_form\":{\"name\":\"Nombre\"},\"gobierto_admin/site_form\":{\"admin_custom_code\":\"C\u00F3digo personalizado de admin\",\"available_locales\":\"Idiomas disponibles\",\"default_locale\":\"Idioma por defecto\",\"domain\":\"Dominio\",\"foot_markup\":\"HTML de Pie\",\"google_analytics_id\":\"C\u00F3digo de Google Analytics\",\"head_markup\":\"HTML de Cabecera\",\"home_page\":\"M\u00F3dulo de inicio\",\"home_page_item_id\":\"P\u00E1gina de inicio\",\"links_markup\":\"HTML de Enlaces\",\"logo_file\":\"Logotipo\",\"name\":\"Nombre de la entidad\",\"organization_id\":\"Identificador de la organizaci\u00F3n (c\u00F3digo INE)\",\"organization_name\":\"Organizaci\u00F3n\",\"populate_data_api_token\":\"API token Populate Data\",\"privacy_page_id\":\"P\u00E1gina de privacidad\",\"raw_configuration_variables\":\"Otras variables de configuraci\u00F3n\",\"registration_disabled\":\"Deshabilitar el registro (solo oculta los enlaces al registro/login)\",\"reply_to_email\":\"Direcci\u00F3n de respuesta en correos-e\",\"title\":\"Nombre del sitio\"},\"gobierto_admin/user_form\":{\"email\":\"Email\",\"name\":\"Nombre\"},\"gobierto_admin/user_password_form\":{\"password\":\"Contrase\u00F1a\",\"password_confirmation\":\"Confirmaci\u00F3n de contrase\u00F1a\"},\"gobierto_dashboards/dashboard_form\":{\"title\":\"T\u00EDtulo\"},\"gobierto_people/person_message\":{\"body\":\"Mensaje\",\"email\":\"Tu e-mail\",\"name\":\"Tu nombre\"},\"user/census_verification_form\":{\"date_of_birth\":\"Fecha de nacimiento\",\"document_number\":\"N\u00FAmero de documento\",\"site\":\"Lugar\"},\"user/confirmation_form\":{\"date_of_birth\":\"Fecha de nacimiento\",\"document_number\":\"N\u00FAmero de documento\",\"email\":\"Tu Correo-e\",\"gender\":\"G\u00E9nero\",\"name\":\"Tu nombre\",\"password\":\"Tu contrase\u00F1a\",\"password_confirmation\":\"Tu contrase\u00F1a, otra vez\"},\"user/confirmation_request_form\":{\"email\":\"Tu Correo-e\"},\"user/edit_password_form\":{\"password\":\"Tu contrase\u00F1a\",\"password_confirmation\":\"Tu contrase\u00F1a, otra vez\"},\"user/new_password_form\":{\"email\":\"Tu Correo-e\"},\"user/registration_form\":{\"email\":\"Tu Correo-e\"},\"user/session_form\":{\"email\":\"Tu Correo-e\",\"password\":\"Tu contrase\u00F1a\"},\"user/settings_form\":{\"date_of_birth\":\"Fecha de nacimiento\",\"email\":\"Tu Correo-e\",\"gender\":\"G\u00E9nero\",\"name\":\"Tu nombre\",\"password\":\"Tu contrase\u00F1a\",\"password_confirmation\":\"Tu contrase\u00F1a, otra vez\"},\"user/subscription_form\":{\"subscribable\":\"Recurso\",\"user\":\"Usuario\",\"user_email\":\"Correo-e\"}},\"errors\":{\"models\":{\"gobierto_admin/gobierto_common/vocabulary_terms_import_form\":{\"attributes\":{\"base\":{\"invalid_row\":\"Se ha encontrado una fila inv\u00E1lida: %{row_data}\"}}},\"gobierto_admin/gobierto_data/dataset_form\":{\"attributes\":{\"table_name\":{\"invalid_table\":\"No se puede acceder a la tabla. Mensaje de error: \\\\\"%{error_message}\\\\\"\"}}},\"gobierto_admin/gobierto_data/settings_form\":{\"attributes\":{\"db_config\":{\"invalid_connection\":\"No se puede conectar con los datos de configuraci\u00F3n. Mensaje de error: \\\\\"%{error_message}\\\\\"\",\"invalid_format\":\"La configuraci\u00F3n no tiene un formato JSON v\u00E1lido\"}}},\"gobierto_admin/gobierto_observatory/settings_form\":{\"attributes\":{\"observatory_config\":{\"invalid_format\":\"La configuraci\u00F3n no tiene un formato JSON v\u00E1lido\",\"invalid_values\":\"La configuraci\u00F3n no tiene valores v\u00E1lidos\"}}},\"gobierto_admin/gobierto_plans/plan_data_form\":{\"attributes\":{\"base\":{\"category_not_found\":\"Alguna de las categor\u00EDas no se ha podido encontrar. Contenido de la fila: %{row_data}\",\"external_id_taken\":\"El campo external_id ya est\u00E1 en uso, bien porque otra fila tiene el mismo external_id o porque estaba vac\u00EDa y autom\u00E1ticamente se asign\u00F3 el mismo valor. Contenido de la fila: %{row_data}\",\"file_not_found\":\"Fichero no encontrado\",\"invalid_columns\":\"No est\u00E1n todas las columnas necesarias\",\"invalid_format\":\"Formato de fichero inv\u00E1lido\",\"invalid_row\":\"Se ha encontrado una fila inv\u00E1lida: %{row_data}\",\"status_missing\":\"El estado de la fila no se ha encontrado en el vocabulario de estados correspondiente o existe un estado en la fila pero no hay un vocabulario de estados configurado en el plan. Contenido de la fila: %{row_data}\",\"term_not_found\":\"No ha sido posible encontrar el t\u00E9rmino \\'%{term}\\' en el vocabulario \\'%{vocabulary}\\' usado por la columna \\'Node.%{uid}\\'\",\"used_resource\":\"El vocabulario emplea t\u00E9rminos que se usan en otras partes de la aplicaci\u00F3n\"}}},\"gobierto_admin/gobierto_plans/plan_table_custom_fields_form\":{\"attributes\":{\"base\":{\"file_not_found\":\"Fichero no encontrado\",\"invalid_columns\":\"No est\u00E1n todas las columnas necesarias\",\"invalid_format\":\"Formato de fichero inv\u00E1lido\"}}},\"gobierto_admin/gobierto_plans/projects_form\":{\"attributes\":{\"base\":{\"category_missing\":\"Categor\u00EDa no encontrada en datos del proyecto. Por favor, proporciona un category_id o category_external_id v\u00E1lido. Datos del proyecto: %{json_data}\",\"failed_import\":\"El proyecto con los siguientes datos no ha podido ser importado: %{json_data}\",\"status_missing\":\"Estado no encontrado en datos del proyecto. Por favor, proporciona un status_id o status_external_id v\u00E1lido. Datos del proyecto: %{json_data}\"}}},\"gobierto_admin/gobierto_visualizations/settings_form\":{\"attributes\":{\"visualizations_config\":{\"invalid_format\":\"La configuraci\u00F3n no tiene un formato JSON v\u00E1lido\",\"invalid_values\":\"La configuraci\u00F3n no tiene valores v\u00E1lidos\"}}},\"gobierto_data/dataset_form\":{\"attributes\":{\"data_file\":{\"no_file_included\":\"El archivo no se ha podido cargar. Por favor, revisa la petici\u00F3n y aseg\u00FArate de que el contenido del archivo se haya incluido en ella\"}}}}},\"models\":{\"gobierto_admin/admin_confirmation_form\":\"Confirmaci\u00F3n\",\"gobierto_admin/admin_edit_password_form\":\"Cambio de contrase\u00F1a\",\"gobierto_admin/admin_form\":\"Administrador\",\"gobierto_admin/admin_group_form\":\"Grupo\",\"gobierto_admin/admin_invitation_form\":\"Invitaci\u00F3n\",\"gobierto_admin/admin_new_password_form\":\"Recuperaci\u00F3n de contrase\u00F1a\",\"gobierto_admin/file_attachment_form\":\"Cambio en el documento\",\"gobierto_admin/gobierto_budgets/options_form\":\"Opciones\",\"gobierto_admin/gobierto_calendars/event_form\":\"Evento\",\"gobierto_admin/gobierto_cms/page_form\":\"P\u00E1gina\",\"gobierto_admin/gobierto_cms/section_form\":\"Secci\u00F3n\",\"gobierto_admin/gobierto_common/collection_form\":\"Colecci\u00F3n\",\"gobierto_admin/gobierto_common/content_block_form\":\"Bloque de contenido\",\"gobierto_admin/gobierto_common/term_form\":\"T\u00E9rmino\",\"gobierto_admin/gobierto_common/vocabulary_form\":\"Vocabulario\",\"gobierto_admin/gobierto_people/person_form\":\"Perfil\",\"gobierto_admin/gobierto_people/person_post_form\":\"Post\",\"gobierto_admin/gobierto_people/person_statement_form\":\"Declaraci\u00F3n\",\"gobierto_admin/gobierto_people/political_group_form\":\"Agrupaci\u00F3n pol\u00EDtica\",\"gobierto_admin/issue_form\":\"Tema\",\"gobierto_admin/scope_form\":\"\u00C1mbito\",\"gobierto_admin/site_form\":\"Sitio\",\"gobierto_admin/user_form\":\"Usuario\",\"gobierto_admin/user_password_form\":\"Cambio de contrase\u00F1a\",\"gobierto_admin/user_welcome_message_form\":\"Email de bienvenida\",\"gobierto_people/person_message\":\"Mensaje\",\"user/census_verification_form\":\"Verificaci\u00F3n de la identidad\",\"user/confirmation_form\":\"Confirmaci\u00F3n\",\"user/confirmation_request_form\":\"Solicitud de confirmaci\u00F3n\",\"user/edit_password_form\":\"Cambiar contrase\u00F1a\",\"user/new_password_form\":\"Recuperar contrase\u00F1a\",\"user/registration_form\":\"Registro\",\"user/session_form\":\"Sesi\u00F3n\",\"user/settings_form\":\"Ajustes\",\"user/subscription_form\":\"Suscripci\u00F3n\"}},\"activerecord\":{\"attributes\":{\"gobierto_admin/api_token\":{\"domain\":\"Dominio\",\"name\":\"Nombre\"},\"gobierto_admin/permission/site_option\":{\"resource_types\":{\"admins\":\"Administradores\",\"calendars\":\"Agendas\",\"custom_fields\":\"Campos personalizados\",\"customize\":\"Personalizar sitio\",\"documents\":\"Documentos\",\"templates\":\"Plantillas\",\"vocabularies\":\"Vocabularios\"}},\"gobierto_attachments/attachment\":{\"current_version\":\"Versi\u00F3n actual\",\"description\":\"Descripci\u00F3n\",\"file_digest\":\"Archivo\",\"file_name\":\"Nombre del archivo\",\"file_size\":\"Tama\u00F1o del archivo\",\"name\":\"Nombre\",\"url\":\"URL\"},\"gobierto_calendars/event_attendee\":{\"charge\":\"Cargo\",\"name\":\"Nombre\",\"person\":\"Persona\"},\"gobierto_calendars/event_location\":{\"address\":\"Direcci\u00F3n\",\"name\":\"Nombre\"},\"gobierto_calendars/filtering_rule\":{\"remove_filtering_text\":\"Eliminar texto filtrado\"},\"gobierto_cms/page\":{\"body\":\"Contenido\",\"slug\":\"URL\",\"title\":\"T\u00EDtulo\"},\"gobierto_common/api_token_form\":{\"domain\":\"Dominio\",\"name\":\"Nombre\"},\"gobierto_common/content_block_field\":{\"field_type\":\"Tipo de campo\",\"field_types\":{\"currency\":\"Moneda\",\"date\":\"Fecha\",\"text\":\"Texto\",\"url\":\"URL\"}},\"gobierto_people/trip\":{\"accomodation_expenses\":\"Hoteles y alojamiento\",\"food_expenses\":\"Dietas y manutenci\u00F3n\",\"other_expenses\":\"Otros gastos\",\"total_expenses\":\"Gastos totales\",\"transport_expenses\":\"Transporte\"},\"user/api_token\":{\"domain\":\"Dominio\",\"name\":\"Nombre\"}},\"enums\":{\"gobierto_calendars/filtering_rule\":{\"action\":{\"ignore\":\"Ignorar\",\"import\":\"Importar\",\"import_as_draft\":\"Importar como borrador\"},\"condition\":{\"contains\":\"Contiene\",\"ends_with\":\"Termina por\",\"not_contains\":\"No contiene\",\"not_starts_with\":\"No empieza por\",\"starts_with\":\"Empieza por\"},\"field\":{\"description\":\"Cuerpo\",\"title\":\"T\u00EDtulo\"}}},\"errors\":{\"messages\":{\"record_invalid\":\"La validaci\u00F3n fall\u00F3: %{errors}\"},\"models\":{\"gobierto_admin/api_token\":{\"attributes\":{\"domain\":{\"not_valid_format\":\"Formato inv\u00E1lido\"}}},\"gobierto_common/custom_field_record\":{\"attributes\":{\"item\":{\"wrong_item_class\":\"no est\u00E1 asociado a un item de la clase adecuada\"}}},\"gobierto_common/term\":{\"attributes\":{\"base\":{\"has_dependent_resources_html\":\"Est\u00E1 siendo usado por los siguientes recursos:\\\\u003c/br\\\\u003e %{dependencies_list}\"}}},\"gobierto_data/connection\":{\"missing_configuration\":\"La base de datos no est\u00E1 configurada\"},\"user/api_token\":{\"attributes\":{\"domain\":{\"not_valid_format\":\"Formato inv\u00E1lido\"}}}}},\"messages\":{\"gobierto_attachments/attachment\":{\"file_too_big\":\"El fichero excede el tama\u00F1o m\u00E1ximo\"}},\"models\":{\"gobierto_attachments/attachment\":\"Documento\",\"gobierto_calendars/event\":\"Evento\",\"gobierto_calendars/event_attendee\":\"Asistente\",\"gobierto_calendars/event_location\":\"Localizacion\",\"gobierto_cms/news\":\"Noticia\",\"gobierto_cms/news_plural\":\"Noticias\",\"gobierto_cms/page\":\"P\u00E1gina\",\"gobierto_cms/pages_collection\":\"Colecci\u00F3n de P\u00E1ginas\",\"gobierto_common/content_block_field\":\"Campo\",\"gobierto_data/dataset\":{\"one\":\"Conjunto de datos\",\"other\":\"Conjuntos de datos\"},\"gobierto_investments/project\":{\"one\":\"Proyecto\",\"other\":\"Proyectos\"},\"gobierto_people/person\":\"Cargo\",\"gobierto_people/person_post\":\"Post\",\"gobierto_people/person_statement\":\"Declaracion\",\"gobierto_plans/node\":{\"one\":\"Proyecto\",\"other\":\"Proyectos\"},\"gobierto_plans/plan\":{\"one\":\"Plan\",\"other\":\"Planes\"},\"user\":\"Usuario\"}},\"admin_gobierto_calendars\":{\"events\":{\"admin_gobierto_calendars_calendars_synchronized\":\"Calendarios sincronizados\"}},\"admin_groups\":{\"events\":{\"admin_groups_admin_group_created\":\"Grupo de admin creado\",\"admin_groups_admin_group_updated\":\"Grupo de admin actualizado\"}},\"admins\":{\"events\":{\"admins_admin_authorization_level_updated\":\"Nivel autorizaci\u00F3n admin actualizado\",\"admins_admin_created\":\"Admin creado\",\"admins_admin_group_member_created\":\"Admin a\u00F1adido a grupo de permisos\",\"admins_admin_group_member_deleted\":\"Admin eliminado de grupo de permisos\",\"admins_admin_updated\":\"Admin actualizado\",\"admins_invitation_accepted\":\"Invitaci\u00F3n admin aceptada\",\"admins_invitation_created\":\"Admin invitado\"}},\"based_on\":\"Web basada en\",\"census\":{\"events\":{\"census_census_imported\":\"Censo importado\"}},\"concerns\":{\"gobierto_common\":{\"api_tokens_concern\":{\"create\":{\"success\":\"El Token de la API se ha creado correctamente\"},\"destroy\":{\"failed\":\"El Token de la API no ha podido ser eliminado\",\"success\":\"El Token de la API ha sido eliminado correctamente\"},\"update\":{\"success\":\"El Token de la API se ha actualizado correctamente\"}}}},\"controllers\":{\"gobierto_budgets\":{\"api\":{\"data\":{\"expense\":\"Gasto\",\"income\":\"Ingreso\"}},\"budgets_execution\":{\"index\":{\"alert\":\"No hay datos disponibles en %{year} as\u00ED que te mostramos el primer a\u00F1o con datos\"}}}},\"cookies_eu\":{\"cookies_text\":\"Las cookies nos ayudan a ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso de cookies.\",\"learn_more\":\"M\u00E1s informaci\u00F3n\",\"ok\":\"OK\"},\"countries\":{\"AC\":\"Isla de la Ascensi\u00F3n\",\"AD\":\"Andorra\",\"AE\":\"Emiratos \u00C1rabes Unidos\",\"AF\":\"Afganist\u00E1n\",\"AG\":\"Antigua y Barbuda\",\"AI\":\"Anguila\",\"AL\":\"Albania\",\"AM\":\"Armenia\",\"AN\":\"Antillas Neerlandesas\",\"AO\":\"Angola\",\"AQ\":\"Ant\u00E1rtida\",\"AR\":\"Argentina\",\"AS\":\"Samoa Americana\",\"AT\":\"Austria\",\"AU\":\"Australia\",\"AW\":\"Aruba\",\"AX\":\"Islas \u00C5land\",\"AZ\":\"Azerbaiy\u00E1n\",\"BA\":\"Bosnia-Herzegovina\",\"BB\":\"Barbados\",\"BD\":\"Banglad\u00E9s\",\"BE\":\"B\u00E9lgica\",\"BF\":\"Burkina Faso\",\"BG\":\"Bulgaria\",\"BH\":\"Bar\u00E9in\",\"BI\":\"Burundi\",\"BJ\":\"Ben\u00EDn\",\"BL\":\"San Bartolom\u00E9\",\"BM\":\"Bermudas\",\"BN\":\"Brun\u00E9i\",\"BO\":\"Bolivia\",\"BQ\":\"Caribe neerland\u00E9s\",\"BR\":\"Brasil\",\"BS\":\"Bahamas\",\"BT\":\"But\u00E1n\",\"BV\":\"Isla Bouvet\",\"BW\":\"Botsuana\",\"BY\":\"Bielorrusia\",\"BZ\":\"Belice\",\"CA\":\"Canad\u00E1\",\"CC\":\"Islas Cocos\",\"CD\":\"Rep\u00FAblica Democr\u00E1tica del Congo\",\"CF\":\"Rep\u00FAblica Centroafricana\",\"CG\":\"Rep\u00FAblica del Congo\",\"CH\":\"Suiza\",\"CI\":\"Costa de Marfil\",\"CK\":\"Islas Cook\",\"CL\":\"Chile\",\"CM\":\"Camer\u00FAn\",\"CN\":\"China\",\"CO\":\"Colombia\",\"CP\":\"Isla Clipperton\",\"CR\":\"Costa Rica\",\"CU\":\"Cuba\",\"CV\":\"Cabo Verde\",\"CW\":\"Curazao\",\"CX\":\"Isla Christmas\",\"CY\":\"Chipre\",\"CZ\":\"Rep\u00FAblica Checa\",\"DE\":\"Alemania\",\"DG\":\"Diego Garc\u00EDa\",\"DJ\":\"Yibuti\",\"DK\":\"Dinamarca\",\"DM\":\"Dominica\",\"DO\":\"Rep\u00FAblica Dominicana\",\"DZ\":\"Argelia\",\"EA\":\"Ceuta y Melilla\",\"EC\":\"Ecuador\",\"EE\":\"Estonia\",\"EG\":\"Egipto\",\"EH\":\"S\u00E1hara Occidental\",\"ER\":\"Eritrea\",\"ES\":\"Espa\u00F1a\",\"ET\":\"Etiop\u00EDa\",\"EU\":\"Uni\u00F3n Europea\",\"FI\":\"Finlandia\",\"FJ\":\"Fiyi\",\"FK\":\"Islas Malvinas\",\"FM\":\"Micronesia\",\"FO\":\"Islas Feroe\",\"FR\":\"Francia\",\"GA\":\"Gab\u00F3n\",\"GB\":\"Reino Unido\",\"GD\":\"Granada\",\"GE\":\"Georgia\",\"GF\":\"Guayana Francesa\",\"GG\":\"Guernesey\",\"GH\":\"Ghana\",\"GI\":\"Gibraltar\",\"GL\":\"Groenlandia\",\"GM\":\"Gambia\",\"GN\":\"Guinea\",\"GP\":\"Guadalupe\",\"GQ\":\"Guinea Ecuatorial\",\"GR\":\"Grecia\",\"GS\":\"Islas Georgia del Sur y Sandwich del Sur\",\"GT\":\"Guatemala\",\"GU\":\"Guam\",\"GW\":\"Guinea-Bis\u00E1u\",\"GY\":\"Guyana\",\"HK\":\"RAE de Hong Kong (China)\",\"HM\":\"Islas Heard y McDonald\",\"HN\":\"Honduras\",\"HR\":\"Croacia\",\"HT\":\"Hait\u00ED\",\"HU\":\"Hungr\u00EDa\",\"IC\":\"Islas Canarias\",\"ID\":\"Indonesia\",\"IE\":\"Irlanda\",\"IL\":\"Israel\",\"IM\":\"Isla de Man\",\"IN\":\"India\",\"IO\":\"Territorio Brit\u00E1nico del Oc\u00E9ano \u00CDndico\",\"IQ\":\"Iraq\",\"IR\":\"Ir\u00E1n\",\"IS\":\"Islandia\",\"IT\":\"Italia\",\"JE\":\"Jersey\",\"JM\":\"Jamaica\",\"JO\":\"Jordania\",\"JP\":\"Jap\u00F3n\",\"KE\":\"Kenia\",\"KG\":\"Kirguist\u00E1n\",\"KH\":\"Camboya\",\"KI\":\"Kiribati\",\"KM\":\"Comoras\",\"KN\":\"San Crist\u00F3bal y Nieves\",\"KP\":\"Corea del Norte\",\"KR\":\"Corea del Sur\",\"KW\":\"Kuwait\",\"KY\":\"Islas Caim\u00E1n\",\"KZ\":\"Kazajist\u00E1n\",\"LA\":\"Laos\",\"LB\":\"L\u00EDbano\",\"LC\":\"Santa Luc\u00EDa\",\"LI\":\"Liechtenstein\",\"LK\":\"Sri Lanka\",\"LR\":\"Liberia\",\"LS\":\"Lesoto\",\"LT\":\"Lituania\",\"LU\":\"Luxemburgo\",\"LV\":\"Letonia\",\"LY\":\"Libia\",\"MA\":\"Marruecos\",\"MC\":\"M\u00F3naco\",\"MD\":\"Moldavia\",\"ME\":\"Montenegro\",\"MF\":\"San Mart\u00EDn\",\"MG\":\"Madagascar\",\"MH\":\"Islas Marshall\",\"MK\":\"Macedonia\",\"ML\":\"Mali\",\"MM\":\"Myanmar (Birmania)\",\"MN\":\"Mongolia\",\"MO\":\"RAE de Macao (China)\",\"MP\":\"Islas Marianas del Norte\",\"MQ\":\"Martinica\",\"MR\":\"Mauritania\",\"MS\":\"Montserrat\",\"MT\":\"Malta\",\"MU\":\"Mauricio\",\"MV\":\"Maldivas\",\"MW\":\"Malaui\",\"MX\":\"M\u00E9xico\",\"MY\":\"Malasia\",\"MZ\":\"Mozambique\",\"NA\":\"Namibia\",\"NC\":\"Nueva Caledonia\",\"NE\":\"N\u00EDger\",\"NF\":\"Isla Norfolk\",\"NG\":\"Nigeria\",\"NI\":\"Nicaragua\",\"NL\":\"Pa\u00EDses Bajos\",\"NO\":\"Noruega\",\"NP\":\"Nepal\",\"NR\":\"Nauru\",\"NU\":\"Isla Niue\",\"NZ\":\"Nueva Zelanda\",\"OM\":\"Om\u00E1n\",\"PA\":\"Panam\u00E1\",\"PE\":\"Per\u00FA\",\"PF\":\"Polinesia Francesa\",\"PG\":\"Pap\u00FAa Nueva Guinea\",\"PH\":\"Filipinas\",\"PK\":\"Pakist\u00E1n\",\"PL\":\"Polonia\",\"PM\":\"San Pedro y Miquel\u00F3n\",\"PN\":\"Islas Pitcairn\",\"PR\":\"Puerto Rico\",\"PS\":\"Territorios Palestinos\",\"PT\":\"Portugal\",\"PW\":\"Palau\",\"PY\":\"Paraguay\",\"QA\":\"Catar\",\"QO\":\"Territorios alejados de Ocean\u00EDa\",\"RE\":\"Reuni\u00F3n\",\"RO\":\"Ruman\u00EDa\",\"RS\":\"Serbia\",\"RU\":\"Rusia\",\"RW\":\"Ruanda\",\"SA\":\"Arabia Saud\u00ED\",\"SB\":\"Islas Salom\u00F3n\",\"SC\":\"Seychelles\",\"SD\":\"Sud\u00E1n\",\"SE\":\"Suecia\",\"SG\":\"Singapur\",\"SH\":\"Santa Elena\",\"SI\":\"Eslovenia\",\"SJ\":\"Svalbard y Jan Mayen\",\"SK\":\"Eslovaquia\",\"SL\":\"Sierra Leona\",\"SM\":\"San Marino\",\"SN\":\"Senegal\",\"SO\":\"Somalia\",\"SR\":\"Surinam\",\"SS\":\"Sud\u00E1n del Sur\",\"ST\":\"Santo Tom\u00E9 y Pr\u00EDncipe\",\"SV\":\"El Salvador\",\"SX\":\"Sint Maarten\",\"SY\":\"Siria\",\"SZ\":\"Suazilandia\",\"TA\":\"Trist\u00E1n da Cunha\",\"TC\":\"Islas Turcas y Caicos\",\"TD\":\"Chad\",\"TF\":\"Territorios Australes Franceses\",\"TG\":\"Togo\",\"TH\":\"Tailandia\",\"TJ\":\"Tayikist\u00E1n\",\"TK\":\"Tokelau\",\"TL\":\"Timor Oriental\",\"TM\":\"Turkmenist\u00E1n\",\"TN\":\"T\u00FAnez\",\"TO\":\"Tonga\",\"TR\":\"Turqu\u00EDa\",\"TT\":\"Trinidad y Tobago\",\"TV\":\"Tuvalu\",\"TW\":\"Taiw\u00E1n\",\"TZ\":\"Tanzania\",\"UA\":\"Ucrania\",\"UG\":\"Uganda\",\"UM\":\"Islas menores alejadas de EE. UU.\",\"US\":\"Estados Unidos\",\"UY\":\"Uruguay\",\"UZ\":\"Uzbekist\u00E1n\",\"VA\":\"Ciudad del Vaticano\",\"VC\":\"San Vicente y las Granadinas\",\"VE\":\"Venezuela\",\"VG\":\"Islas V\u00EDrgenes Brit\u00E1nicas\",\"VI\":\"Islas V\u00EDrgenes de EE. UU.\",\"VN\":\"Vietnam\",\"VU\":\"Vanuatu\",\"WF\":\"Wallis y Futuna\",\"WS\":\"Samoa\",\"XK\":\"Kosovo\",\"YE\":\"Yemen\",\"YT\":\"Mayotte\",\"ZA\":\"Sud\u00E1frica\",\"ZM\":\"Zambia\",\"ZW\":\"Zimbabue\"},\"country\":\"Espa\u00F1a\",\"date\":{\"abbr_day_names\":[\"dom\",\"lun\",\"mar\",\"mi\u00E9\",\"jue\",\"vie\",\"s\u00E1b\"],\"abbr_month_names\":[null,\"ene\",\"feb\",\"mar\",\"abr\",\"may\",\"jun\",\"jul\",\"ago\",\"sep\",\"oct\",\"nov\",\"dic\"],\"day_names\":[\"domingo\",\"lunes\",\"martes\",\"mi\u00E9rcoles\",\"jueves\",\"viernes\",\"s\u00E1bado\"],\"formats\":{\"day_month\":\"%d/%m\",\"default\":\"%d/%m/%Y\",\"long\":\"%d de %B de %Y\",\"short\":\"%d %b %Y\",\"shortest\":\"%d %b %y\"},\"month_names\":[null,\"enero\",\"febrero\",\"marzo\",\"abril\",\"mayo\",\"junio\",\"julio\",\"agosto\",\"septiembre\",\"octubre\",\"noviembre\",\"diciembre\"],\"order\":[\"day\",\"month\",\"year\"]},\"datetime\":{\"distance_in_words\":{\"about_x_hours\":{\"one\":\"hace alrededor de 1 hora\",\"other\":\"hace alrededor de %{count} horas\"},\"about_x_months\":{\"one\":\"hace alrededor de 1 mes\",\"other\":\"hace alrededor de %{count} meses\"},\"about_x_years\":{\"one\":\"hace alrededor de 1 a\u00F1o\",\"other\":\"hace alrededor de %{count} a\u00F1os\"},\"almost_x_years\":{\"one\":\"hace casi 1 a\u00F1o\",\"other\":\"hace casi %{count} a\u00F1os\"},\"half_a_minute\":\"hace medio minuto\",\"less_than_x_minutes\":{\"one\":\"hace menos de 1 minuto\",\"other\":\"hace menos de %{count} minutos\"},\"less_than_x_seconds\":{\"one\":\"hace menos de 1 segundo\",\"other\":\"hace menos de %{count} segundos\"},\"over_x_years\":{\"one\":\"hace m\u00E1s de 1 a\u00F1o\",\"other\":\"hace m\u00E1s de %{count} a\u00F1os\"},\"x_days\":{\"one\":\"hace 1 d\u00EDa\",\"other\":\"hace %{count} d\u00EDas\"},\"x_minutes\":{\"one\":\"hace 1 minuto\",\"other\":\"hace %{count} minutos\"},\"x_months\":{\"one\":\"hace 1 mes\",\"other\":\"hace %{count} meses\"},\"x_seconds\":{\"one\":\"hace 1 segundo\",\"other\":\"hace %{count} segundos\"},\"x_years\":{\"one\":\"hace 1 a\u00F1o\",\"other\":\"hace %{count} a\u00F1os\"}},\"prompts\":{\"day\":\"D\u00EDa\",\"hour\":\"Hora\",\"minute\":\"Minutos\",\"month\":\"Mes\",\"second\":\"Segundos\",\"year\":\"A\u00F1o\"}},\"errors\":{\"format\":\"%{attribute} %{message}\",\"messages\":{\"accepted\":\"debe ser aceptado\",\"array_too_short\":{\"one\":\"es demasiado corto (al menos 1 elemento)\",\"other\":\"es demasiado corto (al menos %{count} elementos)\"},\"blank\":\"no puede estar en blanco\",\"blank_for_modules\":\"La organizaci\u00F3n no est\u00E1 bien configurada. El identificador es obligatorio para los m\u00F3dulos que tienes activados.\",\"collection_taken\":\"no puede tener otra colecci\u00F3n de este tipo.\",\"confirmation\":\"no coincide con %{attribute}\",\"custom_fields\":{\"options\":{\"missing_vocabulary\":\"Alguna columna de tipo \\\\\"vocabulary\\\\\" no tiene valor en \\\\\"dataSource\\\\\"\",\"wrong_column_type\":\"Alguna columna no pertenece a un tipo reconocido. Tipos reconocidos: \\\\\"text\\\\\", \\\\\"integer\\\\\", \\\\\"float\\\\\", \\\\\"date\\\\\" y \\\\\"vocabulary\\\\\"\",\"wrong_custom_field_uids\":\"Los uids configurados no existen o pertenecen a campos personalizados que no tienen definido un valor de progreso\"}},\"empty\":\"no puede estar vac\u00EDo\",\"equal_to\":\"debe ser igual a %{count}\",\"even\":\"debe ser par\",\"exclusion\":\"est\u00E1 reservado\",\"greater_than\":\"debe ser mayor que %{count}\",\"greater_than_or_equal_to\":\"debe ser mayor que o igual a %{count}\",\"inclusion\":\"no est\u00E1 incluido en la lista\",\"invalid\":\"no es v\u00E1lido\",\"invalid_consultation_response\":\"No se ha podido guardar la consulta. Por favor, revisa los valores e int\u00E9ntalo de nuevo.\",\"invalid_table_name\":\"Debe comenzar con una letra o un gui\u00F3n bajo; el resto solo puede contener letras, d\u00EDgitos o guiones bajos\",\"less_than\":\"debe ser menor que %{count}\",\"less_than_or_equal_to\":\"debe ser menor que o igual a %{count}\",\"not_a_number\":\"no es un n\u00FAmero\",\"not_an_integer\":\"debe ser un entero\",\"not_found\":\"no se encuentra\",\"odd\":\"debe ser impar\",\"other_than\":\"debe ser distinto de %{count}\",\"page_as_homepage\":\"No se ha podido guardar los cambios en la p\u00E1gina porque no se puede cambiar la visibilidad de una p\u00E1gina que se utiliza como homepage.\",\"present\":\"debe estar en blanco\",\"record_invalid\":\"La validaci\u00F3n fall\u00F3: %{errors}\",\"restrict_dependent_destroy\":{\"one\":\"No se puede eliminar el registro porque existe un %{record} dependiente\",\"other\":\"No se puede eliminar el registro porque existen %{record} dependientes\"},\"taken\":\"ya est\u00E1 en uso\",\"too_long\":{\"one\":\"es demasiado largo (1 car\u00E1cter m\u00E1ximo)\",\"other\":\"es demasiado largo (%{count} caracteres m\u00E1ximo)\"},\"too_short\":{\"one\":\"es demasiado corto (1 car\u00E1cter m\u00EDnimo)\",\"other\":\"es demasiado corto (%{count} caracteres m\u00EDnimo)\"},\"wrong_length\":{\"one\":\"no tiene la longitud correcta (1 car\u00E1cter exacto)\",\"other\":\"no tiene la longitud correcta (%{count} caracteres exactos)\"}},\"template\":{\"body\":\"Se encontraron problemas con los siguientes campos:\",\"header\":{\"one\":\"No se pudo guardar este/a %{model} porque se encontr\u00F3 1 error\",\"other\":\"No se pudo guardar este/a %{model} porque se encontraron %{count} errores\"}}},\"gobierto_admin\":{\"activities\":{\"activities_list\":{\"header\":{\"action\":\"Acci\u00F3n\",\"date\":\"Fecha\",\"ip\":\"IP\",\"recipient\":\"Receptor\",\"subject\":\"Sujeto\",\"user\":\"Usuario\"}},\"index\":{\"title\":\"Log de actividades\"}},\"admin\":{\"invitation_acceptances\":{\"show\":{\"error\":\"Esta URL no parece ser v\u00E1lida\",\"success\":\"Sesi\u00F3n iniciada correctamente\"}},\"invitations\":{\"create\":{\"error\":\"Hubo un problema al enviar las invitaciones\",\"success\":\"Las invitaciones se han enviado correctamente\",\"success_with_errors\":\"Algunas invitaciones no han podido ser enviadas: %{email_addresses}.\"},\"form\":{\"placeholders\":{\"emails\":\"maria@hotmail.com, felipe@gmail.com\"},\"sites\":\"Sites con acceso\",\"submit\":\"Enviar invitaciones\"},\"new\":{\"title\":\"Enviar invitaciones\"}},\"passwords\":{\"create\":{\"error\":\"La direcci\u00F3n de e-mail que has indicado no parece ser v\u00E1lida\",\"success\":\"Por favor, revisa tu email para recibir instrucciones\"},\"edit\":{\"error\":\"Esta URL no parece ser v\u00E1lida\",\"title\":\"Establecer tu nueva contrase\u00F1a\"},\"edit_form\":{\"submit\":\"Cambiar contrase\u00F1a\"},\"new\":{\"title\":\"Recuperar tu contrase\u00F1a\"},\"new_form\":{\"placeholders\":{\"email\":\"fsanchez@gmail.com\"},\"submit\":\"Solicitar recuperaci\u00F3n\"},\"update\":{\"error\":\"Hubo un problema al cambiar tu contrase\u00F1a\",\"success\":\"Sesi\u00F3n iniciada correctamente\"}},\"settings\":{\"edit\":{\"password_block\":\"Contrase\u00F1a\",\"placeholders\":{\"email\":\"Email\",\"name\":\"Nombre\"},\"title\":\"Edita tus datos personales\"},\"update\":{\"error\":\"No se han podido guardar tus datos\",\"success\":\"Datos guardados correctamente\"}}},\"admin_groups\":{\"admins\":{\"modal_index\":{\"add\":\"A\u00F1adir\",\"add_title\":\"A\u00F1adir usuario\",\"created_at\":\"Acceso concedido\",\"delete\":\"Eliminar acceso\",\"email\":\"correo-e\",\"user\":\"Usuario\",\"users_with_access\":\"Usuarios con acceso\"}},\"breadcrumb\":{\"admin_groups\":\"Grupos\"},\"create\":{\"success\":\"El Grupo de Admins se ha creado correctamente\"},\"edit\":{\"title\":\"Permisos del grupo: %{name}\"},\"form\":{\"action_names\":{\"create_projects\":\"Crear proyectos\",\"delete_projects_all\":\"Eliminar proyectos (todos)\",\"delete_projects_assigned\":\"Eliminar proyectos (asignados)\",\"edit\":\"Editar\",\"edit_projects_all\":\"Editar proyectos (todos)\",\"edit_projects_assigned\":\"Editar proyectos (asignados)\",\"edit_projects_permissions_all\":\"Editar permisos de proyectos (todos)\",\"edit_projects_permissions_assigned\":\"Editar permisos de proyectos (asignados)\",\"manage_dashboards\":\"Administrar dashboards\",\"manage_plans\":\"Administrar planes\",\"moderate_projects_all\":\"Moderar proyectos (todos)\",\"moderate_projects_assigned\":\"Moderar proyectos (asignados)\",\"publish_projects_all\":\"Publicar proyectos (todos)\",\"publish_projects_assigned\":\"Publicar proyectos (asignados)\",\"update_projects_as_minor_change_all\":\"Guardar cambios menores en proyectos (todos)\",\"update_projects_as_minor_change_assigned\":\"Guardar cambios menores en proyectos (asignados)\",\"view_dashboards\":\"Ver dashboards\",\"view_projects_all\":\"Ver proyectos (todos)\",\"view_projects_assigned\":\"Ver proyectos (asignados)\"},\"actions\":\"Acciones\",\"all\":\"Todos\",\"members\":{\"one\":\"Hay un administrador con este grupo.\",\"other\":\"Hay %{count} administradores con este grupo.\",\"zero\":\"Este grupo no tiene administradores.\"},\"modules_permissions\":\"M\u00F3dulos\",\"people\":\"Personas\",\"placeholders\":{\"name\":\"Grupo global de administradores\"},\"site_options_permissions\":\"Sitio\"},\"index\":{\"header\":{\"admin_group\":\"Grupo\"},\"new\":\"Nuevo\",\"title\":\"Grupos\"},\"new\":{\"title\":\"Nuevo grupo\"},\"update\":{\"success\":\"El Grupo de Admins se ha actualizado correctamente\"}},\"admin_mailer\":{\"invitation_instructions\":{\"bye\":\"Saludos\",\"click_link\":\"Has sido invitado para colaborar en Gobierto. Pincha en el siguiente enlace para crear tu cuenta\",\"hi\":\"Hola\",\"subject\":\"Has sido invitado a colaborar en Gobierto\"},\"reset_password_instructions\":{\"bye\":\"Saludos\",\"click_link\":\"Pincha en el siguiente enlace para restaurar tu contrase\u00F1a\",\"hi\":\"Hola\",\"subject\":\"Instrucciones para restaurar tu contrase\u00F1a\"}},\"admin_unauthorized\":\"No tienes suficientes permisos para realizar esta acci\u00F3n\",\"admins\":{\"create\":{\"success\":\"El Admin se ha creado correctamente\"},\"edit\":{\"title\":\"Editar Administrador\"},\"form\":{\"activity_block\":\"Log de actividad\",\"admin_groups_block\":\"Grupo\",\"authorization_level\":{\"disabled\":\"Deshabilitado\",\"manager\":\"Manager\",\"regular\":\"Regular\"},\"password_block\":\"Contrase\u00F1a\",\"placeholders\":{\"email\":\"fgonzalez@gmail.com\",\"name\":\"Fernando Gonz\u00E1lez\"},\"sites_block\":\"Sites con acceso\",\"sites_block_description\":\"Este usuario puede acceder a administrar:\"},\"index\":{\"groups_and_permissions\":\"Grupos y permisos\",\"header\":{\"admin\":\"Administrador\",\"created_at\":\"Creado\",\"email\":\"Email\",\"groups\":\"Grupos\",\"last_sign_in_at\":\"\u00DAltimo login\",\"primary_api_token\":\"Token de la API primario\",\"role\":\"Rol\"},\"new\":\"Nuevo Administrador\",\"send_invitations\":\"Enviar invitaciones\",\"title\":\"Administradores\",\"users_section\":\"Usuarios\",\"view_admin\":\"Ver Administrador\"},\"new\":{\"title\":\"Nuevo Administrador\"},\"show\":{\"admin_tokens\":\"Tokens de autorizaci\u00F3n\",\"copy_to_clipboard\":\"Copiar\",\"primary_api_token\":\"Token primario\"},\"update\":{\"success\":\"El Admin se ha actualizado correctamente\"}},\"api_tokens\":{\"api_token\":{\"primary\":\"Primario\"},\"edit\":{\"api_token\":\"Token de la API %{name}\"},\"form\":{\"placeholders\":{\"domain\":\"www.example.org\",\"name\":\"Token para aplicaciones externas\"},\"update_token\":\"Actualizar Token\"},\"list\":{\"header\":{\"created_at\":\"Creado\",\"domain\":\"Dominio\",\"name\":\"Nombre\",\"token\":\"Token\"},\"new\":\"Nuevo\",\"title\":\"Tokens de la API\"},\"new\":{\"api_token\":\"Nuevo Token de la API\"}},\"census\":{\"imports\":{\"create\":{\"error\":\"Hubo un error al importar tu archivo. Por favor, int\u00E9ntalo de nuevo.\",\"success\":\"Se han importado %{record_count} registros\"},\"file_format_notes\":{\"instructions\":\"El archivo a cargar debe ser un CSV, sin fila de cabecera, con las columnas de datos que queramos que el usuario deba verficiar. Por ejemplo, si queremos que valide DNI, fecha de nacimiento y c\u00F3digo postal, deberemos preparar un fichero como este:\"},\"form\":{\"disable_with\":\"Cargando...\",\"submit\":\"Cargar archivo de censo\"},\"new\":{\"final_notes\":\"se sustituir\u00E1n todos los registros, y si alg\u00FAn DNI de usuario verificado deja de estar presente, el usuario dejar\u00E1 de tener acceso\",\"import_status\":\"El censo ha sido cargado por \u00FAltima vez el %{created_at} por %{admin_name} (%{admin_email}). El archivo tiene %{imported_records} registros.\",\"title\":\"Configuraci\u00F3n de censo\"}}},\"custom_fields_plugins\":{\"budgets\":{\"area\":\"\u00C1rea\",\"assigned_amount\":\"Asignado\",\"budget_line\":\"Partida presupuestaria\",\"custom\":\"Personalizada\",\"economic\":\"Econ\u00F3mica\",\"full_amount\":\"Total\",\"functional\":\"Funcional\",\"not_available\":\"No disp.\",\"weight\":\"Peso\",\"year\":\"A\u00F1o\"},\"common\":{\"custom\":\"Personalizada\",\"economic\":\"Econ\u00F3mica\",\"functional\":\"Funcional\"},\"data_grid\":{\"remove_rows\":\"Eliminar filas seleccionadas\",\"select_deselect_all\":\"Seleccionar / Deseleccionar todas\"},\"progress\":{\"progress\":\"Progreso\"},\"table\":{\"remove_rows\":\"Eliminar filas seleccionadas\",\"select_deselect_all\":\"Seleccionar / Deseleccionar todas\"}},\"custom_sessions\":{\"ldap_strategy\":{\"form\":{\"identifier\":\"Identificador\",\"password\":\"Contrase\u00F1a\",\"submit\":\"Enviar\"}}},\"gobierto_attachments\":{\"file_attachments\":{\"create\":{\"success_html\":\"El documento ha sido creado correctamente. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer el documento\\\\u003c/a\\\\u003e.\"},\"destroy\":{\"success\":\"El documento se ha archivado correctamente\"},\"edit\":{\"title\":\"Editar documento\"},\"form\":{\"file_constraints\":\"Adjuntar documento\",\"placeholders\":{\"description\":\"Descripci\u00F3n del documento\",\"name\":\"Nombre del documento\",\"slug\":\"nombre-del-documento\"}},\"index\":{\"add_new_attachment\":\"A\u00F1adir nuevo documento\",\"collections\":\"Colecciones\",\"created_at\":\"Creado\",\"header\":{\"collection\":\"Colecci\u00F3n\",\"file_attachments\":\"Documentos\"},\"latest_editions\":\"\u00DAltimas ediciones\",\"new\":\"Nueva\",\"title\":\"Documentos\",\"updated_at\":\"Actualizado\",\"view_collection\":\"Ver colecci\u00F3n\"},\"new\":{\"title\":\"Nuevo documento\"},\"recover\":{\"success\":\"El documento se ha recuperado correctamente\"},\"update\":{\"success_html\":\"El documento ha sido actualizado correctamente. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer el documento\\\\u003c/a\\\\u003e.\"}}},\"gobierto_budgets\":{\"feedback\":{\"index\":{\"answer1_0\":\"S\u00ED\",\"answer1_1\":\"No\",\"answer2_0\":\"Poco\",\"answer2_1\":\"Apropiado\",\"answer2_2\":\"Mucho\",\"budget\":\"Presupuesto\",\"last\":\"\u00DAltima\",\"total_feedback\":\"Total opiniones\",\"understand\":\"\u00BFLo entiendes?\",\"you_think\":\"Te parece...\"}},\"options\":{\"index\":{\"comparison_compare_municipalities_desc\":\"Muestra una tabla con municipios espec\u00EDficos (y cuyos datos est\u00E9n disponibles en presupuestos.gobierto.es - haz la comprobaci\u00F3n all\u00ED antes de incluirlos)\",\"comparison_context_table_enabled_desc\":\"Muestra la tabla que ofrece contexto con medias provinciales, auton\u00F3micas o estatales\",\"comparison_show_widget_desc\":\"Facilita el acceso a la herramienta de comparaci\u00F3n de presupuestos de Gobierto: presupuestos.gobierto.es\",\"comparison_tool_enabled_desc\":\"Habilita herramientas de comparaci\u00F3n\",\"confirm_update_annual_data\":\"Comenzar\u00E1 un proceso en segundo plano para actualizar los ficheros. \u00BFContinuar?\",\"elaboration\":\"Elaboraci\u00F3n\",\"elaboration_desc1\":\"Habilita la secci\u00F3n de Elaboraci\u00F3n del presupuesto.\",\"elaboration_desc2_html\":\"\\\\u003cstrong\\\\u003eImportante:\\\\u003c/strong\\\\u003e es necesario que se hayan cargado datos de elaboraci\u00F3n. Contacta con tu administrador si tienes dudas.\",\"feedback\":\"Micro-participaciones\",\"feedback_desc\":\"Habilita la opci\u00F3n para que los visitantes opinen sobre las partidas del presupuesto\",\"feedback_emails_desc\":\"Las participaciones (opini\u00F3n sobre partidas y petici\u00F3n de m\u00E1s informaci\u00F3n) se enviar\u00E1n a esta direcci\u00F3n\",\"indicators\":\"Indicadores\",\"indicators_desc1\":\"Habilita la secci\u00F3n Indicadores\",\"options\":\"Opciones\",\"providers\":\"Proveedores y Facturas\",\"providers_desc1\":\"Habilita la secci\u00F3n Proveedores y Facturas\",\"receipt\":\"Recibo de tus impuestos\",\"receipt_desc1\":\"Habilita la secci\u00F3n El recibo de tus impuestos\",\"receipt_desc2_html\":\"\\\\u003cstrong\\\\u003eImportante:\\\\u003c/strong\\\\u003e debes de rellenar el JSON con los datos.\",\"update_annual_data\":\"Generar ficheros de partidas presupuestarias por a\u00F1o\"},\"update\":{\"error\":\"No se han podido guardar las opciones: %{validation_errors}\",\"success\":\"Opciones guardadas correctamente\"},\"update_annual_data\":{\"success\":\"Se ha lanzado un proceso para generar los ficheros de partidas presupuestarias por a\u00F1o\"}},\"shared\":{\"tabs\":{\"budgets\":\"Presupuestos\",\"feedback\":\"Opiniones\",\"options\":\"Opciones\"}}},\"gobierto_calendars\":{\"calendar_configuration\":{\"edit\":{\"add_rule\":\"Crear regla\",\"calendar_integration\":\"Integraci\u00F3n de calendario\",\"confirm_sync\":\"\u00BFEst\u00E1s seguro?\",\"filter_events\":\"Filtrado de eventos\",\"filter_events_desc\":\"Cuando se importa un evento...\",\"filter_events_label\":\"Si el\",\"google_calendar\":\"Google Calendar\",\"ibm_notes\":\"IBM Notes\",\"labels\":{\"ibm_notes_pwd\":\"Contrase\u00F1a\",\"ibm_notes_url\":\"URL del calendario de IBM Notes\",\"ibm_notes_usr\":\"Cuenta de IBM Notes\",\"microsoft_exchange_pwd\":\"Contrase\u00F1a\",\"microsoft_exchange_url\":\"URL del calendario\",\"microsoft_exchange_usr\":\"Cuenta de Microsoft Exchange\"},\"last_sync\":\"\u00DAltima sincronizaci\u00F3n\",\"manage\":\"Administrar la configuraci\u00F3n del calendario\",\"microsoft_exchange\":\"Microsoft Exchange\",\"placeholders\":{\"filter_text\":\"Texto por el que filtrar\",\"ibm_notes_url\":\"ej. https://ejemplo.com/mail/abc.nsf/api/calendar/events\",\"microsoft_exchange_url\":\"ej. https://ejemplo.com/ews/exchange.asmx\",\"username\":\"ej. perico85\"},\"remove_configuration\":\"Eliminar configuraci\u00F3n de calendario\",\"sync\":\"Sincronizar ahora\",\"without_description\":\"No importar la descripci\u00F3n del evento\"},\"gobierto_people_person_navigation\":{\"calendar_configuration\":\"Configuraci\u00F3n de calendario\"},\"google_calendar_fields\":{\"calendar_configured\":\"Actualmente esta persona tiene configurados estos calendarios\",\"share_link\":\"Comparte este enlace con el Alto Cargo para que permita a Gobierto leer sus eventos de Google Calendar:\"},\"sync_calendars\":{\"success\":\"Sincronizaci\u00F3n realizada\"},\"update\":{\"success\":\"Preferencias actualizadas correctamente\"}},\"collections\":{\"index\":{\"add_new_event\":\"A\u00F1adir nuevo evento\",\"collections\":\"Calendarios\",\"header\":{\"collection\":\"Calendario\",\"events\":\"Eventos\"},\"latest_editions\":\"\u00DAltimos eventos editados\",\"new\":\"Nuevo\",\"title\":\"Agendas\",\"view_collection\":\"Ver colecci\u00F3n\"}},\"events\":{\"attendees_form\":{\"header\":{\"charge\":\"Cargo\",\"name\":\"Nombre\",\"person\":\"Persona\"},\"title\":\"Asistentes\",\"view_person\":\"Ver persona\"},\"create\":{\"success_html\":\"El evento ha sido creado correctamente. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer el evento\\\\u003c/a\\\\u003e.\"},\"destroy\":{\"success\":\"El evento se ha archivado correctamente\"},\"edit\":{\"title\":\"Editar evento\"},\"form\":{\"placeholders\":{\"slug\":\"acerca-de-esta-web\",\"title\":\"T\u00EDtulo del evento\"},\"state\":{\"pending\":\"Pendiente\",\"published\":\"Publicado\"}},\"index\":{\"configuration\":\"Configuraci\u00F3n\",\"header\":{\"date\":\"Fecha\",\"event\":\"Evento\",\"location\":\"Localizaci\u00F3n\",\"status\":\"Estado\"},\"new\":\"Nuevo evento\",\"past_events\":\"Eventos pasados\",\"pending_events\":\"Pendientes de moderar\",\"published_events\":\"Eventos publicados\",\"upcoming_events\":\"Pr\u00F3ximos\",\"view_event\":\"Ver evento\",\"visibility_level\":{\"archived\":\"Archivado\",\"pending\":\"Borrador\",\"published\":\"Publicado\"}},\"locations_form\":{\"header\":{\"address\":\"Direcci\u00F3n\",\"place\":\"Lugar\"},\"title\":\"Lugar\"},\"new\":{\"title\":\"Nuevo evento\"},\"person_breadcrumb\":{\"back_to_collections\":\"\\\\u003c Volver a agendas\"},\"recover\":{\"success\":\"El evento se ha recuperado correctamente\"},\"update\":{\"success_html\":\"El evento ha sido actualizado. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer el evento\\\\u003c/a\\\\u003e.\"}}},\"gobierto_cms\":{\"file_attachments\":{\"index\":{\"title\":\"Documentos\"}},\"pages\":{\"create\":{\"success_html\":\"La p\u00E1gina ha sido creada correctamente. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer la p\u00E1gina\\\\u003c/a\\\\u003e.\"},\"destroy\":{\"success\":\"La p\u00E1gina ha sido eliminada correctamente\"},\"edit\":{\"title\":\"Editar p\u00E1gina\"},\"form\":{\"include_in_section\":\"Incluir en secci\u00F3n\",\"new_section\":\"(Nueva secci\u00F3n)\",\"placeholders\":{\"slug\":\"acerca-de-esta-web\",\"title\":\"T\u00EDtulo de la p\u00E1gina\"},\"section\":\"Secci\u00F3n\",\"visibility_level\":{\"active\":\"Publicada\",\"draft\":\"Borrador\"},\"without_parent\":\"(sin padre)\"},\"index\":{\"add_new\":\"A\u00F1adir nueva\",\"collections\":\"Colecciones\",\"header\":{\"collection\":\"Colecci\u00F3n\",\"pages\":\"P\u00E1ginas\",\"section\":\"Secci\u00F3n\"},\"latest_editions\":\"\u00DAltimas ediciones\",\"new\":\"Nueva\",\"sections\":\"Secciones\",\"title\":\"CMS\",\"view_collection\":\"Ver colecci\u00F3n\",\"view_section\":\"Ver secci\u00F3n\"},\"new\":{\"title\":\"Nueva p\u00E1gina\"},\"recover\":{\"success\":\"La p\u00E1gina ha sido recuperada correctamente\"},\"update\":{\"success_html\":\"La p\u00E1gina ha sido actualizada correctamente. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer la p\u00E1gina\\\\u003c/a\\\\u003e.\"}},\"sections\":{\"create\":{\"success\":\"La secci\u00F3n ha sido creada correctamente.\"},\"edit_modal\":{\"title\":\"Editar secci\u00F3n\"},\"form\":{\"placeholders\":{\"slug\":\"acerca-de-esta-seccion\",\"title\":\"T\u00EDtulo de la secci\u00F3n\"}},\"index\":{\"header\":{\"pages\":\"P\u00E1ginas\",\"title\":\"Secci\u00F3n\"},\"new\":\"Nueva\",\"title\":\"Secciones\",\"view\":\"Ver secci\u00F3n\"},\"new_modal\":{\"title\":\"Nueva secci\u00F3n\"},\"pages_filter\":{\"page_help\":\"Arrastra y suelta en la parte izquierda para colocar esta p\u00E1gina en el men\u00FA\"},\"show\":{\"collapse\":\"Colapsar todo\",\"configuration\":\"Configuraci\u00F3n\",\"delete_element\":\"Eliminar elemento del men\u00FA\",\"expand\":\"Expandir todo\",\"help\":\"Configura los elementos de tu men\u00FA. Arrastra del panel derecho al men\u00FA en la izquierda\",\"last_edited_pages\":\"\u00DAltimas p\u00E1ginas editadas\",\"placeholders\":{\"search\":\"Escribe el t\u00EDtulo de la p\u00E1gina para buscar\"},\"sections\":\"Secciones\",\"select_page\":\"Selecciona p\u00E1gina para incluir en la secci\u00F3n\",\"view\":\"Ver secci\u00F3n\"},\"update\":{\"success\":\"La secci\u00F3n ha sido actualizada correctamente.\"}}},\"gobierto_common\":{\"collections\":{\"check_container_presence\":{\"container_not_found\":\"El recurso al que pertenece la colecci\u00F3n no se encuentra\"},\"create\":{\"success\":\"La colecci\u00F3n se ha creado correctamente.\"},\"edit_modal\":{\"title\":\"Editar colecci\u00F3n\"},\"form\":{\"placeholders\":{\"slug\":\"acerca-de-esta-coleccion\",\"title\":\"Nombre de la colecci\u00F3n\"}},\"index\":{\"collections\":\"Colecciones\",\"header\":{\"collection\":\"T\u00EDtulo\",\"pages\":\"P\u00E1ginas\"},\"latest_editions\":\"\u00DAltimas ediciones\",\"new\":\"Nueva\",\"title\":\"CMS\",\"view_collection\":\"Ver colecci\u00F3n\"},\"new_modal\":{\"title\":\"Nueva colecci\u00F3n\"},\"show\":{\"configuration\":\"Configuraci\u00F3n\",\"file_attachments\":{\"created_at\":\"Creado\",\"file_name\":\"Nombre del documento\",\"view\":\"Ver documento\"},\"new_attachment\":\"Nuevo\",\"new_page\":\"Nueva\",\"pages\":{\"created_at\":\"Creada\",\"public\":\"Estado\",\"published_on\":\"Publicada\",\"updated_at\":\"Actualizada\",\"view\":\"Ver p\u00E1gina\",\"visibility_level\":{\"active\":\"Publicada\",\"archived\":\"Archivada\",\"draft\":\"Borrador\"}}},\"update\":{\"success\":\"La colecci\u00F3n se ha actualizado correctamente.\"}},\"content_blocks\":{\"create\":{\"success\":\"El bloque de contenido se ha creado correctamente\"},\"destroy\":{\"success\":\"El bloque de contenido se ha eliminado correctamente\"},\"edit\":{\"title\":\"Editar bloque\"},\"form\":{\"add_child\":\"A\u00F1adir columna\",\"fields\":\"Columnas\",\"title\":\"Nombre del bloque\"},\"new\":{\"title\":\"Agregar bloque\"},\"update\":{\"success\":\"El bloque de contenido se ha actualizado correctamente\"}},\"custom_fields\":{\"custom_fields\":{\"create\":{\"success\":\"Campo personalizado creado correctamente\"},\"date_options\":{\"date\":\"Fecha\",\"datetime\":\"Fecha y hora\",\"type\":\"Tipo\"},\"destroy\":{\"failed\":\"Ha habido un error que ha impedido eliminar el campo personalizado\",\"success\":\"Campo personalizado eliminado correctamente\"},\"edit\":{\"instance_title\":\"Editar %{field_name} de %{instance_name}\",\"title\":\"Editar %{name}\"},\"form\":{\"confirm\":\"\u00BFEst\u00E1s seguro?\",\"crop\":\"Recortar\",\"multiple\":\"M\u00FAltiple\",\"type\":\"Opciones de contenido\"},\"index\":{\"instance_title\":\"Campos personalizados de %{instance_name}\",\"localized_custom_fields\":\"Campos traducibles\",\"new\":\"A\u00F1adir nuevo campo\",\"not_localized_custom_fields\":\"Campos no traducibles\",\"title\":\"Campos personalizados\"},\"new\":{\"instance_title\":\"Nuevo campo de %{instance_name}\",\"title\":\"Nuevo campo\"},\"new_option\":{\"cancel_new_option\":\"Cancelar\",\"create\":\"Crear opci\u00F3n\",\"new\":\"Nueva opci\u00F3n\"},\"numeric_options\":{\"currency\":\"Monetaria\",\"generic\":\"Gen\u00E9rica\",\"unit_type\":\"Tipo de unidad\"},\"options_form\":{\"add_option\":\"A\u00F1adir opci\u00F3n\"},\"plugin\":{\"budgets\":\"Presupuestos\",\"progress\":\"Progreso\",\"table\":\"Tabla\",\"type\":\"Tipo\"},\"plugin_configuration_form\":{\"configuration\":\"Configuraci\u00F3n\"},\"update\":{\"success\":\"Campo personalizado actualizado correctamente\"},\"vocabulary_select\":{\"vocabulary\":\"Vocabulario de opciones\"},\"vocabulary_type_select\":{\"multiple_select\":\"Selecci\u00F3n m\u00FAltiple\",\"single_select\":\"Selecci\u00F3n \u00FAnica\",\"tags\":\"Tags\",\"type\":\"Tipo\"}},\"forms\":{\"new_gallery_image\":{\"add_item\":\"A\u00F1adir imagen\",\"cancel_new_item\":\"Cancelar\"}},\"module_resources\":{\"index\":{\"custom_fields_for_instances_of\":\"Campos personalizados para instancias de %{name}\",\"empty\":\"De momento no hay ning\u00FAn modelo con campos personalizados habilitados\"}}},\"dynamic_content\":{\"form\":{\"add_child\":\"A\u00F1adir nuevo registro\",\"add_content_block\":\"A\u00F1adir nuevo bloque\",\"add_record\":\"A\u00F1adir\",\"attachment\":\"Adjunto\",\"attachment_file\":\"Archivo adjunto\",\"cancel_record\":\"Cancelar\",\"delete_content_block\":\"Eliminar bloque\",\"delete_content_block_confirm\":\"\u00BFEst\u00E1s seguro de querer eliminar este bloque?\",\"download_attachment\":\"Descargar adjunto\",\"edit_content_block\":\"Editar\",\"remove_attachment\":\"Eliminar adjunto\",\"save_record\":\"Guardar\"}},\"ordered_terms\":{\"create\":{\"success\":\"El t\u00E9rmino se ha creado correctamente.\"},\"destroy\":{\"destroy_failed\":\"El t\u00E9rmino no ha podido ser eliminado: %{validation_errors}\",\"success\":\"El t\u00E9rmino ha sido eliminado correctamente.\"},\"edit_modal\":{\"title\":\"Editar %{term}\"},\"form\":{\"placeholders\":{\"description\":\"Descripci\u00F3n del t\u00E9rmino\",\"external_id\":\"ID001\",\"name\":\"Nombre del t\u00E9rmino\",\"slug\":\"termino\"}},\"index\":{\"collapse_all\":\"Plegar todo\",\"explore\":\"Explora\",\"new\":\"Nuevo\",\"open_all\":\"Desplegar todo\",\"title\":\"T\u00E9rminos de %{vocabulary}\"},\"new_modal\":{\"title\":\"Nuevo t\u00E9rmino\"},\"terms_tree\":{\"delete_confirm\":\"\u00BFEst\u00E1s seguro? Esta operaci\u00F3n no es reversible\"},\"update\":{\"success\":\"El t\u00E9rmino se ha actualizado correctamente.\"}},\"terms\":{\"create\":{\"success\":\"El t\u00E9rmino se ha creado correctamente.\"},\"destroy\":{\"destroy_failed\":\"No puedes borrar un t\u00E9rmino mientras tenga elementos asociados.\",\"success\":\"El t\u00E9rmino ha sido eliminado correctamente.\"},\"edit\":{\"edit\":\"Editar %{term}\"},\"form\":{\"placeholders\":{\"description\":\"El caballo es un mam\u00EDfero herb\u00EDvoro\",\"name\":\"Caballo\",\"slug\":\"reino-animal-caballo\"}},\"index\":{\"delete_confirm\":\"\u00BFEst\u00E1s seguro? Esta operaci\u00F3n no es reversible\",\"header\":{\"description\":\"Descripci\u00F3n\",\"level\":\"Nivel\",\"name\":\"Nombre\",\"parent\":\"Padre\"},\"new\":\"Nuevo\",\"title\":\"T\u00E9rminos de %{vocabulary}\"},\"new\":{\"new\":\"Nuevo T\u00E9rmino\"},\"update\":{\"success\":\"El t\u00E9rmino se ha actualizado correctamente.\"}},\"vocabularies\":{\"create\":{\"success\":\"El vocabulario se ha creado correctamente.\"},\"destroy\":{\"destroy_failed\":\"El vocabulario no ha podido ser eliminado porque est\u00E1 siendo utilizado por alguna entidad\",\"success\":\"El vocabulario ha sido eliminado correctamente.\"},\"edit\":{\"edit\":\"Editar %{vocabulary}\"},\"edit_modal\":{\"title\":\"Editar %{vocabulary}\"},\"form\":{\"placeholders\":{\"name\":\"Reino animal\",\"slug\":\"reino_animal\"}},\"index\":{\"delete_confirm\":\"Seguro? Esta operaci\u00F3n no tiene marcha atr\u00E1s.\",\"header\":{\"name\":\"Tema\",\"terms\":\"T\u00E9rminos\"},\"new\":\"Nuevo\",\"title\":\"Vocabularios\",\"view_vocabulary\":\"Ver t\u00E9rminos\"},\"new\":{\"new\":\"Nuevo Vocabulario\"},\"new_modal\":{\"title\":\"Nuevo Vocabulario\"},\"show\":{\"created_at\":\"Creaci\u00F3n\",\"terms\":\"T\u00E9rminos\",\"terms_count\":\"%{count} t\u00E9rminos\"},\"update\":{\"success\":\"El vocabulario se ha actualizado correctamente.\"}}},\"gobierto_core\":{\"site_templates\":{\"create\":{\"success\":\"La plantilla se ha editado correctamente.\"},\"destroy\":{\"success\":\"La plantilla se ha borrado correctamente.\"},\"update\":{\"success\":\"La plantilla se ha actualizado correctamente.\"}},\"templates\":{\"edit\":{\"preview\":\"Previsualizar\",\"reset\":\"Resetear\",\"reset_title\":\"Descartar cambios guardados, y volver a la plantilla original (ojo, no podr\u00E1s recuperar la plantilla que hayas personalizado)\",\"save\":\"Guardar\"},\"index\":{\"edit_templates\":\"Editar plantillas\"}}},\"gobierto_dashboards\":{\"dashboards\":{\"destroy\":{\"success\":\"El dashboard ha sido eliminado correctamente.\"},\"list_modal\":{\"add\":\"A\u00F1adir\",\"new\":\"\u00BFNecesitas crear un nuevo dashboard?\",\"no_dashboards\":\"No hay dashboards\",\"title\":\"Selecciona el dashboard donde incluir este indicador\"}}},\"gobierto_data\":{\"configuration\":{\"settings\":{\"edit\":{\"api_settings\":\"Configuraci\u00F3n de la API\",\"db_config_placeholder\":\"{\\\\\"pool\\\\\":5, \\\\\"adapter\\\\\":\\\\\"postgresql\\\\\", \\\\\"database\\\\\":\\\\\"gobierto_test\\\\\", \\\\\"encoding\\\\\":\\\\\"unicode\\\\\", \\\\\"password\\\\\":\\\\\"gobierto\\\\\", \\\\\"username\\\\\":\\\\\"gobierto\\\\\"}\",\"frontend\":\"Interfaz p\u00FAblica\",\"frontend_enabled\":\"Visible\",\"title\":\"Configuraci\u00F3n\",\"update\":\"Actualizar\"},\"title\":\"Preferencias\",\"update\":{\"success\":\"Configuraci\u00F3n guardada correctamente\"}}},\"datasets\":{\"create\":{\"success\":\"El conjunto de datos ha sido creado correctamente.\"},\"destroy\":{\"success\":\"El conjunto de datos ha sido eliminado correctamente.\"},\"form\":{\"placeholders\":{\"name\":\"Habitantes\",\"slug\":\"habitantes\"}},\"index\":{\"header\":{\"name\":\"Nombre\",\"status\":\"Estado\",\"table_name\":\"Nombre de la tabla\"},\"new\":\"Nuevo\",\"title\":\"Conjuntos de datos\",\"view_dataset\":\"Ver conjunto de datos\"},\"new\":{\"title\":\"Nuevo conjunto de datos\"},\"update\":{\"success\":\"El conjunto de datos ha sido actualizado correctamente.\"}}},\"gobierto_investments\":{\"projects\":{\"create\":{\"success\":\"El proyecto ha sido creado correctamente.\"},\"destroy\":{\"success\":\"El proyecto ha sido eliminado correctamente.\"},\"form\":{\"placeholders\":{\"external_id\":\"ID001\",\"title\":\"Centro deportivo\"}},\"index\":{\"header\":{\"external_id\":\"ID externo\",\"title\":\"T\u00EDtulo\"},\"new\":\"Nuevo\",\"title\":\"Proyectos\",\"view_project\":\"Ver proyecto\"},\"new\":{\"title\":\"Nuevo proyecto\"},\"update\":{\"success\":\"El proyecto ha sido actualizado correctamente.\"}}},\"gobierto_observatory\":{\"configuration\":{\"settings\":{\"edit\":{\"title\":\"Configuraci\u00F3n del Observatorio\",\"update\":\"Actualizar\"},\"title\":\"Preferencias\",\"update\":{\"error\":\"Se ha producido un error al actualizar la configuraci\u00F3n: %{validation_errors}\",\"success\":\"Configuraci\u00F3n guardada correctamente\"}}}},\"gobierto_people\":{\"configuration\":{\"settings\":{\"edit\":{\"agendas\":\"Agendas\",\"blogs\":\"Blogs\",\"departments\":\"Departamentos\",\"gifts\":\"Obsequios\",\"interest_groups\":\"Grupos de inter\u00E9s\",\"invitations\":\"Invitaciones\",\"officials\":\"Personas\",\"placeholders\":{\"home_text_ca\":\"Texto home catal\u00E1n\",\"home_text_en\":\"Texto home ingl\u00E9s\",\"home_text_es\":\"Texto home espa\u00F1ol\"},\"political_groups_vocabulary\":\"Vocabulario de grupos pol\u00EDticos\",\"statements\":\"Declaraciones\",\"submodules_enabled\":\"Subm\u00F3dulos habilitados\",\"trips\":\"Viajes\",\"update\":\"Actualizar\"},\"update\":{\"error\":\"Ha ocurrido un error guardando las preferencias\",\"success\":\"Preferencias actualizadas correctamente\"}},\"title\":\"Configuraci\u00F3n\"},\"people\":{\"create\":{\"success_html\":\"El perfil ha sido creado correctamente. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer la persona\\\\u003c/a\\\\u003e.\"},\"edit\":{\"title\":\"Editar persona\"},\"form\":{\"avatar_file_constraints\":\"Avatar de usuario (fichero de 500x500)\",\"bio_file_constraints\":\"Adjuntar fichero (PDF)\",\"category\":{\"executive\":\"Directivo\",\"politician\":\"Pol\u00EDtico\"},\"crop\":\"Recortar\",\"party\":{\"government\":\"Equipo de Gobierno\",\"opposition\":\"Oposici\u00F3n\"},\"placeholders\":{\"charge\":\"Alcalde\",\"email\":\"Correo-e\",\"name\":\"Rafael Garc\u00EDa\"}},\"index\":{\"configuration\":\"Configuraci\u00F3n\",\"drag_to_sort\":\"Arrastra para ordenar\",\"header\":{\"charge\":\"Position\",\"events\":\"Eventos\",\"person\":\"Persona\",\"posts\":\"Posts\",\"statements\":\"Declaraciones\",\"status\":\"Estado\"},\"new\":\"Nueva persona\",\"no_permissions\":\"No tienes permisos para editar esta persona. Si la necesitas editar, habla con tu administrador\",\"title\":\"Personas\",\"view_person\":\"Ver persona\",\"visibility_level\":{\"active\":\"Publicada\",\"draft\":\"Borrador\"}},\"navigation\":{\"agenda\":\"Agenda\",\"person\":\"Persona\",\"posts\":\"Blog\",\"statements\":\"Declaraciones\"},\"new\":{\"title\":\"Nueva persona\"},\"person_events\":{\"index\":{\"title\":\"Agenda\"}},\"person_posts\":{\"create\":{\"success_html\":\"El post ha sido creado correctamente. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer el post\\\\u003c/a\\\\u003e.\"},\"edit\":{\"title\":\"Editar post\"},\"form\":{\"placeholders\":{\"tags\":\"personal, sobre mi, mi carrera\",\"title\":\"Sobre m\u00ED\"}},\"index\":{\"header\":{\"date\":\"Fecha\",\"status\":\"Estado\",\"tags\":\"Tags\",\"title\":\"T\u00EDtulo\"},\"new\":\"Nuevo post\",\"title\":\"Blog\",\"view_post\":\"Ver post\",\"visibility_level\":{\"active\":\"Publicado\",\"draft\":\"Borrador\"}},\"new\":{\"title\":\"Nuevo post\"},\"update\":{\"success_html\":\"El post ha sido actualizado. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer el post\\\\u003c/a\\\\u003e.\"}},\"person_statements\":{\"create\":{\"success_html\":\"La declaraci\u00F3n ha sido creada correctamente. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer la declaraci\u00F3n\\\\u003c/a\\\\u003e.\"},\"edit\":{\"title\":\"Editar declaraci\u00F3n\"},\"form\":{\"placeholders\":{\"title\":\"Declaraci\u00F3n de Bienes y Actividades\"}},\"index\":{\"header\":{\"date\":\"Fecha\",\"statement\":\"Declaraci\u00F3n\",\"status\":\"Estado\"},\"new\":\"Nueva declaraci\u00F3n\",\"title\":\"Declaraciones\",\"view_statement\":\"Ver declaraci\u00F3n\",\"visibility_level\":{\"active\":\"Publicada\",\"draft\":\"Borrador\"}},\"new\":{\"title\":\"Nueva declaraci\u00F3n\"},\"update\":{\"success_html\":\"La declaraci\u00F3n ha sido actualizada. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer la declaraci\u00F3n\\\\u003c/a\\\\u003e.\"}},\"update\":{\"success_html\":\"El perfil ha sido actualizado. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer la persona\\\\u003c/a\\\\u003e.\"}},\"settings\":{\"title\":\"Preferencias\"}},\"gobierto_plans\":{\"admin_mailer\":{\"project_attributes_changed\":{\"bye\":\"Saludos\",\"edition_change\":\"el contenido\",\"hi\":\"Hola\",\"intro_html\":\"%{author_name} ha actualizado %{updates_list} en el proyecto %{project_link} del plan %{plan_title}.\",\"minor_change_notice\":\"El cambio se ha guardado como menor con lo que no se ha creado una nueva versi\u00F3n.\",\"moderation_stage_change\":\"el estado de moderaci\u00F3n a %{value}\",\"subject\":\"Se ha modificado un proyecto en el plan %{plan_title} de %{site_name}\",\"subject_with_changes\":\"Se ha modificado un proyecto en el plan %{plan_title} de %{site_name} a %{changes}\",\"visibility_level_change\":\"el estado de publicaci\u00F3n a %{value}\",\"visibility_levels\":{\"draft\":\"No publicado\",\"published\":\"Publicado\"}},\"project_created\":{\"bye\":\"Saludos\",\"hi\":\"Hola\",\"intro_html\":\"%{author_name} ha creado un nuevo proyecto %{project_link} en el plan %{plan_title}\",\"subject\":\"Se ha creado un proyecto en el plan %{plan_title} de %{site_name}\"},\"project_deleted\":{\"bye\":\"Saludos\",\"hi\":\"Hola\",\"intro_html\":\"%{author_name} ha eliminado el proyecto %{project_name} del plan %{plan_link}\",\"subject\":\"Se ha eliminado un proyecto del plan %{plan_title} de %{site_name}\"}},\"categories\":{\"calculated_headers\":{\"items\":\"\u00CDtems\",\"progress\":\"Progreso\"},\"create\":{\"success\":\"La categor\u00EDa se ha creado correctamente.\"},\"destroy\":{\"destroy_failed\":\"La categor\u00EDa no ha podido ser eliminada porque tiene proyectos u otros recursos asociados.\",\"success\":\"La categor\u00EDa ha sido eliminada correctamente.\"},\"index\":{\"progress_excluded_nodes_explanation\":\"Se han descartado algunos proyectos del c\u00E1lculo por tener alguno de los siguientes estados excluidos: %{statuses}\"},\"plan_summary\":{\"global_progress\":\"Progreso global\",\"projects\":\"Proyectos\"},\"update\":{\"success\":\"La categor\u00EDa se ha actualizado correctamente.\"}},\"dashboards\":{\"index\":{\"headers\":{\"status\":\"Visibilidad\",\"title\":\"T\u00EDtulo\",\"updated\":\"Actualizado\"},\"new\":\"Nuevo\",\"visibility_level\":{\"active\":\"P\u00FAblico\",\"draft\":\"Privado\"}}},\"plan_types\":{\"create\":{\"success\":\"El tipo de plan ha sido creado correctamente.\"},\"destroy\":{\"has_items\":\"No puedes archivar un tipo de plan mientras tenga elementos asociados.\",\"success\":\"El tipo de plan ha sido eliminado correctamente\"},\"edit\":{\"title\":\"Editar tipo de plan\"},\"form\":{\"placeholders\":{\"name\":\"Nombre del tipo de plan\",\"slug\":\"acerca-de-este-tipo-de-plan\"}},\"index\":{\"delete\":\"Borrar\",\"header\":{\"type\":\"Tipo\"},\"new\":\"Nuevo\",\"title\":\"Tipos de planes\"},\"new\":{\"title\":\"Nuevo tipo de plan\"},\"update\":{\"success\":\"El tipo de plan ha sido actualizado correctamente.\"}},\"plans\":{\"create\":{\"success_html\":\"El plan ha sido creado correctamente. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer el plan\\\\u003c/a\\\\u003e.\"},\"delete_contents\":{\"success\":\"Los proyectos del plan han sido correctamente eliminados\",\"term_deletion_failed_html\":\"El t\u00E9rmino \\\\\"%{term}\\\\\" del vocabulario \\\\\"%{vocabulary}\\\\\" no puede ser borrado: %{message}\"},\"destroy\":{\"success\":\"El plan ha sido eliminado correctamente.\"},\"edit\":{\"title\":\"Configuraci\u00F3n\"},\"form\":{\"delete_contents\":\"Borrar proyectos de este plan\",\"delete_contents_confirm\":\"Confirma que quieres borrar los proyectos de este plan\",\"export_csv\":\"Exportar a CSV\",\"import_csv\":\"Importar desde CSV\",\"indicators\":\"Indicadores\",\"placeholders\":{\"configuration_data\":\"{ \\\\\"open_node\\\\\": true }\",\"css\":\".gobierto_planification section.level_0 .cat_1 { background-color: rgba(0, 191, 255, 0.95); }\",\"footer\":\"Pie de p\u00E1gina del plan\",\"introduction\":\"Introducci\u00F3n del plan\",\"slug\":\"acerca-de-este-plan\",\"title\":\"T\u00EDtulo del plan\",\"year\":2018},\"projects\":\"Proyectos\",\"publish_last_version_automatically\":\"Publicar las versiones nuevas de los proyectos autom\u00E1ticamente\"},\"import_csv\":{\"defaults\":{\"category\":{\"one\":\"elemento de nivel %{level}\",\"other\":\"elementos de nivel %{level}\"},\"project\":{\"one\":\"proyecto\",\"other\":\"proyectos\"}},\"latest_update\":\"\u00DAltima actualizaci\u00F3n: %{datetime}\",\"no_data\":\"Ning\u00FAn dato cargado todav\u00EDa\",\"there_are\":\"Hay %{info}\",\"title\":\"Importar CSV\"},\"import_csv_form\":{\"confirm_import\":\"\u00BFEst\u00E1s seguro?\",\"custom_fields_table_plugin\":\"Campos personalizados (plugin de tabla)\",\"disable_with\":\"Cargando...\",\"more_info_html\":\"Para obtener m\u00E1s informaci\u00F3n visita la documentaci\u00F3n de c\u00F3mo \\\\u003ca href=\\\\\"%{url}\\\\\" target=\\\\\"_blank\\\\\"\\\\u003eImportar datos de un plan\\\\u003c/a\\\\u003e.\",\"plan_content\":\"Contenido del plan\",\"submit\":\"Importar desde fichero CSV\",\"vocabulary_used_by_other_plans\":\"El vocabulario configurado para este plan ya est\u00E1 configurado para alg\u00FAn otro. Por favor, crea un vocabulario nuevo para este plan o elim\u00EDnalo de la configuraci\u00F3n de los otros planes que lo est\u00E9n usando, dado que se borrar\u00EDan sus datos con la importaci\u00F3n.\",\"warning\":\"\\\\u003cstrong\\\\u003eAviso\\\\u003c/strong\\\\u003e Al importar desde un archivo CSV, si el plan est\u00E1 vac\u00EDo se a\u00F1adir\u00E1n t\u00E9rminos a los vocabularios asociados con categor\u00EDas y campos personalizados a medida que se encuentren, pero si el plan ya contiene datos, al tratarse de una actualizaci\u00F3n, se producir\u00E1n errores para los t\u00E9rminos que no se encuentren en los respectivos vocabularios.\"},\"import_data\":{\"missing_file\":\"Es necesario seleccionar un fichero para la importaci\u00F3n.\",\"success_html\":\"Datos importados correctamente. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer el plan\\\\u003c/a\\\\u003e.\"},\"index\":{\"header\":{\"elements\":\"Elementos\",\"status\":\"Estado\",\"title\":\"T\u00EDtulo\",\"type\":\"Tipo\",\"year\":\"A\u00F1o\"},\"new\":\"Nuevo\",\"title\":\"Planes\",\"types\":\"Tipos\",\"view_plan\":\"Ver plan\",\"visibility_level\":{\"draft\":\"Borrador\",\"published\":\"Publicado\"}},\"new\":{\"title\":\"Nuevo plan\"},\"recover\":{\"success\":\"El plan ha sido recuperado correctamente.\"},\"update\":{\"success_html\":\"El plan ha sido actualizado correctamente. \\\\u003ca href=\\\\\"%{link}\\\\\"\\\\u003eVer el plan\\\\u003c/a\\\\u003e.\"}},\"projects\":{\"create\":{\"success\":\"El proyecto ha sido creado correctamente.\"},\"destroy\":{\"success\":\"El proyecto ha sido eliminado correctamente.\"},\"filter_form\":{\"author\":\"Autor\",\"category\":\"Categor\u00EDa\",\"clear_filters\":\"Limpiar filtros\",\"filter\":\"Filtrar\",\"interval\":\"Rango de fechas\",\"progress\":\"Progreso\",\"search\":\"Busca...\",\"status\":\"Estado\",\"submit\":\"Filtrar\"},\"filters_row\":{\"all\":\"Todos\",\"moderation_stage\":\"Moderaci\u00F3n\",\"moderation_stage_value\":{\"approved\":\"Aprobados\",\"blank\":\"Sin moderaci\u00F3n\",\"in_review\":\"En revisi\u00F3n\",\"rejected\":\"Rechazados\",\"sent\":\"Enviados\",\"unsent\":\"No enviados\"},\"total\":\"Total\",\"versions_visibility_level\":\"Publicaci\u00F3n\",\"versions_visibility_level_value\":{\"draft\":\"Borrador\",\"published_up_to_date\":\"Publicado actualizado\",\"published_with_unpublished_changes\":\"Publicado con cambios sin publicar\"}},\"find_versioned_project\":{\"unavailable_version\":\"Versi\u00F3n no disponible.\"},\"form\":{\"button\":{\"add_dashboard\":\"A\u00F1adir a un dashboard\"},\"placeholders\":{\"name\":\"T\u00EDtulo del proyecto\"}},\"index\":{\"headers\":{\"progress\":\"Progreso\",\"project\":\"Proyecto\",\"status\":\"Estado\",\"updated\":\"Actualizado\",\"visibility_level\":\"Publicaci\u00F3n\"},\"new\":\"Nuevo\",\"title\":\"Proyectos de %{name}\",\"view\":\"Ver item\"},\"new\":{\"title\":\"Nuevo proyecto\"},\"publish\":{\"confirm\":\"Vas a publicar este proyecto, por lo que cualquier usuario podr\u00E1 verlo.\",\"error\":\"El proyecto no se ha podido publicar.\",\"success\":\"El proyecto ha sido publicado correctamente.\"},\"send\":{\"confirm\":\"Vas a enviar este proyecto a un moderador para su validaci\u00F3n.\"},\"unpublish\":{\"error\":\"El proyecto no se ha podido despublicar.\",\"success\":\"El proyecto ha sido despublicado correctamente.\"},\"update\":{\"moderation_reset\":\"Debido a que has modificado el proyecto y no tienes permisos de moderaci\u00F3n su estado ha sido movido a No enviado.\",\"no_changes\":\"No se han producido cambios en el proyecto. Manteniendo la versi\u00F3n actual.\",\"success\":\"El proyecto ha sido actualizado correctamente.\",\"suggest_unpublish_html\":\"El proyecto est\u00E1 sin aprobar pero publicado. \\\\u003ca rel=\\\\\"nofollow\\\\\" data-method=\\\\\"post\\\\\" href=\\\\\"%{url}\\\\\"\\\\u003eDespublicar\\\\u003c/a\\\\u003e.\"}},\"shared\":{\"navigation\":{\"configuration_tab\":\"Configuraci\u00F3n\",\"dashboards_tab\":\"Dashboards\",\"plan_terms_tab\":\"Plan\",\"projects_tab\":\"Proyectos\"}}},\"gobierto_visualizations\":{\"configuration\":{\"settings\":{\"edit\":{\"title\":\"Configuraci\u00F3n de las Visualizaciones\",\"update\":\"Actualizar\"},\"title\":\"Preferencias\",\"update\":{\"error\":\"Se ha producido un error al actualizar la configuraci\u00F3n: %{validation_errors}\",\"success\":\"Configuraci\u00F3n guardada correctamente\"}}}},\"layouts\":{\"application\":{\"admin_dropdown\":{\"account\":\"Tu cuenta\",\"sign_out\":\"Cerrar sesi\u00F3n\"},\"calendars\":\"Agendas\",\"cms\":\"CMS\",\"collapse_menu\":\"Colapsar men\u00FA\",\"custom_fields\":\"Campos personalizados\",\"dirty_forms\":{\"message\":\"Hay cambios sin guardar. \u00BFEst\u00E1s seguro de querer continuar?\"},\"edit_site\":\"Personalizar sitio\",\"file_attachments\":\"Documentos\",\"global\":\"General\",\"hey_admin\":\"Hola, %{admin_name}\",\"manage_sites\":\"Gestionar sites\",\"modules\":{\"budgets\":\"Presupuestos\",\"data\":\"Datos\",\"investments\":\"Inversiones\",\"observatory\":\"Observatorio\",\"people\":\"Altos cargos y Agendas\",\"plans\":\"Planes\",\"visualizations\":\"Visualizaciones\"},\"notifications\":\"Notificaciones\",\"site_network\":\"Red\",\"templates\":\"Plantillas\",\"users\":\"Usuarios\",\"view_documentation\":\"Ver documentaci\u00F3n\",\"view_item\":\"Ver \u00EDtem\",\"view_site\":\"Ver site\",\"vocabularies\":\"Vocabularios\"}},\"module_helper\":{\"not_enabled\":\"No est\u00E1s autorizado a realizar esta acci\u00F3n\"},\"session_helper\":{\"already_signed_in\":\"Ya est\u00E1s identificado\",\"not_authorized\":\"No est\u00E1s autorizado a realizar esta acci\u00F3n\",\"not_signed_in\":\"Necesitas estar identificado para continuar\"},\"sessions\":{\"create\":{\"error\":\"Los datos que has introducido no parecen ser v\u00E1lidos. Por favor, int\u00E9ntalo de nuevo.\",\"success\":\"Sesi\u00F3n iniciada correctamente\"},\"destroy\":{\"success\":\"Sesi\u00F3n cerrada correctamente\"},\"form\":{\"email\":\"Email\",\"password\":\"Contrase\u00F1a\",\"submit\":\"Enviar\"},\"new\":{\"forgot_your_password\":\"\u00BFOlvidaste tu contrase\u00F1a?\",\"title\":\"Iniciar sesi\u00F3n\"}},\"shared\":{\"admin_widget_attachment\":{\"add_new_document\":\"A\u00F1ade nuevo documento\",\"attachments\":\"Documentos\",\"copy_to_clipboard\":\"Copiar URL\",\"description\":\"Descripci\u00F3n\",\"document\":\"Documento\",\"document_title\":\"T\u00EDtulo del documento\",\"drag_document_here\":\"Arrastra y suelta el documento aqu\u00ED\",\"edit_document\":\"Editar documento\",\"include_file\":\"Incluir archivo\",\"include_in_text\":\"Incluir archivo en el texto\",\"latest_documents\":\"\u00DAltimos documentos a\u00F1adidos\",\"no_docs\":\"No hay documentos\",\"or\":\"o\",\"save\":\"Guardar\",\"search\":\"Buscar\",\"select_file\":\"Selecciona un archivo del disco duro\"},\"archive\":{\"confirm\":\"\u00BFSeguro que quieres archivar este elemento? No se mostrar\u00E1 en el front ni en listas como esta. Usted podr\u00E1 recuperarlo.\",\"element\":\"Archivar este elemento\",\"elements\":\"Elementos archivados\"},\"draft\":\"Borrador\",\"form_locale_switchers\":{\"define_content_in_locale\":\"Define el contenido en su versi\u00F3n %{locale_name}\",\"translate\":\"Traducir\"},\"moderation_save_widget\":{\"change_moderation_status\":\"Cambiar estado de moderaci\u00F3n\",\"confirm\":\"\u00BFEst\u00E1s seguro?\",\"confirm_moderation_blocked_update\":\"\u00BFEst\u00E1s seguro? Si guardas modificaciones en este proyecto el estado se actualizar\u00E1 a No enviado.\",\"edit_version\":\"Editando versi\u00F3n\",\"last_versions\":\"\u00DAltimas versiones\",\"minor_change\":\"Cambio menor (no guarda versi\u00F3n)\",\"moderation\":\"Moderaci\u00F3n\",\"moderation_info\":{\"new\":\"Una vez guardes tu contenido, podr\u00E1s enviarlo a moderaci\u00F3n.\",\"publicable\":\"Haz click en Publicar para que esta versi\u00F3n sea visible publicamente.\",\"publicable_html\":\"Haz click en Publicar para que esta versi\u00F3n sea visible publicamente.\",\"published\":\"La versi\u00F3n actual es la que est\u00E1 publicada.\",\"published_html\":\"La versi\u00F3n actual es la que est\u00E1 publicada. \\\\u003ca rel=\\\\\"nofollow\\\\\" data-method=\\\\\"post\\\\\" href=\\\\\"%{url}\\\\\"\\\\u003eDespublicar\\\\u003c/a\\\\u003e.\",\"rejected\":\"La versi\u00F3n est\u00E1 rechazada.\",\"sent\":\"Tu contenido ha sido enviado para revisi\u00F3n. Recibir\u00E1s una notificaci\u00F3n cuando se apruebe o te soliciten cambios.\",\"unsent\":\"Cuando tu contenido est\u00E9 listo para ser revisado por un moderador, haz click en Enviar.\"},\"moderation_status\":{\"approved\":\"Aprobado\",\"in_review\":\"En revisi\u00F3n\",\"rejected\":\"Rechazado\",\"sent\":\"Enviado\",\"unsent\":\"No enviado\"},\"new_version\":\"Nueva (no guardada)\",\"preview\":\"Previsualizar\",\"previous_versions\":\"Versiones anteriores\",\"publication_status\":{\"approved\":\"Publicada\",\"not_published\":\"No publicada\"},\"publish\":\"Publicar\",\"publish_last_version_automatically\":\"Publica autom\u00E1ticamente esta versi\u00F3n\",\"publish_status\":\"Estado\",\"published_version\":\"Versi\u00F3n publicada\",\"published_version_blank\":\"sin publicar todav\u00EDa\",\"save\":\"Guardar\",\"see_all\":\"ver todas\",\"send\":\"Enviar\",\"unpublish\":\"Despublicar\"},\"module\":\"M\u00F3dulo\",\"recover\":{\"confirm\":\"Si recuperas un elemento, se volver\u00E1 a listar de nuevo.\",\"element\":\"Recuperar elemento\"},\"resource_admin_permissions_button\":{\"permissions\":\"Permisos\"},\"save_widget\":{\"save\":\"Guardar\",\"visibility_level\":{\"active\":\"P\u00FAblico\",\"draft\":\"Borrador\",\"published\":\"P\u00FAblico\"}}},\"sites\":{\"create\":{\"success\":\"El sitio se ha creado correctamente\"},\"destroy\":{\"success\":\"El sitio se ha eliminado correctamente\"},\"edit\":{\"title\":\"Personalizar sitio\"},\"form\":{\"admin_authentication_modules\":\"Estrategias de autenticaci\u00F3n para admins\",\"authentication_modules\":\"Estrategias de autenticaci\u00F3n para usuarios\",\"hints\":{\"domain\":{\"a_record\":\"Entrada A a %{target}\",\"cname_record\":\"Entrada CNAME a %{target}\",\"if_domain\":\"Si es un dominio\",\"if_subdomain\":\"Si es un subdominio\",\"instructions\":\"Importante: este dominio deber\u00E1 estar creado previamente para que el sitio funcione correctamente.\"},\"organization_id_html\":\"Puedes buscar el c\u00F3digo \\\\u003ca href=\\\\\"https://populatetools.github.io/ine-places/places.html\\\\\" target=\\\\\"_blank\\\\\"\\\\u003een esta tabla\\\\u003c/a\\\\u003e.\"},\"modules_enabled\":\"M\u00F3dulos activados para este sitio\",\"password\":\"Contrase\u00F1a\",\"placeholders\":{\"domain\":\"gobierto.burjassot.es\",\"google_analytics_id\":\"UA-000000-01\",\"name\":\"Ayuntamiento de Burjassot\",\"organization_name\":\"Burjassot\",\"populate_data_api_token\":\"Token de API de Populate Data\",\"reply_to_email\":\"contacto@correo.es\",\"title\":\"Transparencia y Participaci\u00F3n\"},\"registration\":\"Registro de usuarios\",\"registration_disabled\":\"Deshabilitar el registro (solo oculta los enlaces al registro/login)\",\"username\":\"Nombre de usuario\",\"visibility_level\":{\"active\":\"Publicado\",\"draft\":\"Borrador\"}},\"index\":{\"configuration\":\"Configuraci\u00F3n\",\"header\":{\"created_at\":\"Creado\",\"domain\":\"Dominio\",\"site\":\"Sitio\",\"status\":\"Estado\"},\"new\":\"Crear sitio\",\"title\":\"Sites\",\"view_site\":\"Ver sitio\"},\"new\":{\"title\":\"Crear sitio\"},\"pages\":\"P\u00E1ginas\",\"sections\":\"Secciones\",\"update\":{\"success\":\"El sitio se ha actualizado correctamente\"}},\"users\":{\"edit\":{\"title\":\"Editar Usuario\"},\"form\":{\"change_password\":\"Cambiar contrase\u00F1a\",\"password_block\":\"Contrase\u00F1a\",\"placeholders\":{\"email\":\"fgonzalez@gmail.com\",\"name\":\"Fernando Gonz\u00E1lez\"},\"resend_welcome_email\":\"Reenviar Email de bienvenida\",\"resend_welcome_email_notes\":\"con enlace para cambiar la contrase\u00F1a\"},\"index\":{\"admins_section\":\"Administradores\",\"census_configuration\":\"Censo\",\"header\":{\"created_at\":\"Creado\",\"email\":\"Email\",\"last_sign_in_at\":\"\u00DAltimo login\",\"user\":\"Usuario\",\"verified\":\"Verificado\"},\"title\":\"Usuarios\",\"users\":{\"one\":\"%{count} usuario\",\"other\":\"%{count} usuarios\"},\"users_confirmed\":{\"one\":\"%{count}% confirmado\",\"other\":\"%{count}% confirmados\"},\"users_verified\":{\"one\":\"%{count}% verificado\",\"other\":\"%{count}% verificados\"},\"view_user\":\"Ver Usuario\"},\"passwords\":{\"create\":{\"error\":\"Hubo un problema al cambiar la contrase\u00F1a del usuario\",\"success\":\"La contrase\u00F1a del usuario fue cambiada con \u00E9xito\"},\"form\":{\"submit\":\"Enviar\"},\"new\":{\"title\":\"Cambiar contrase\u00F1a de usuario\"}},\"session_information\":{\"created_at\":\"Creado\",\"last_sign_in\":\"\u00DAltimo login\",\"site\":\"Sitio\"},\"update\":{\"success\":\"El Usuario ha sido actualizado correctamente\"},\"welcome_messages\":{\"create\":{\"error\":\"El mensaje de bienvenida no pudo ser enviado. Por favor, int\u00E9ntalo de nuevo.\",\"success\":\"El mensaje de bienvenida se ha enviado\"}}},\"welcome\":{\"index\":{\"title\":\"Inicio\"}}},\"gobierto_attachments\":{\"events\":{\"gobierto_attachments_attachment_created\":\"Documento creado\",\"gobierto_attachments_attachment_updated\":\"Documento actualizado\"}},\"gobierto_budgets\":{\"budget_lines\":{\"explorer\":{\"examples\":\"Ejemplos\",\"expenses\":\"Gastos\",\"explore_the_detail\":\"Explora el detalle\",\"income\":\"Ingresos\",\"search\":\"Busca\",\"search_budget_line\":\"Busca una partida espec\u00EDfica\"},\"index\":{\"amount\":\"Cantidad\",\"budget_guide_pitch\":\"Consulta la Gu\u00EDa del Presupuesto\",\"budget_line\":\"Partida\",\"categories\":\"Categor\u00EDas presupuestarias\",\"custom\":\"Personalizada\",\"expense_in_what\":\"En qu\u00E9 se gasta\",\"expense_to_do_what\":\"Para qu\u00E9 se gasta\",\"help\":\"Te explicamos como funciona un presupuesto municipal\",\"income_from_what\":\"En qu\u00E9 se ingresa\",\"per_inhabitant\":\"Por habitante\",\"title\":\"Presupuestos municipales en %{year}\"},\"show\":{\"about_this_line\":\"Acerca de esta partida\",\"avg_province\":\"Media %{kind} provincial\",\"avg_province_tooltip\":\"Media de esta partida en los municipios de la provincia\",\"back_to_parent\":\"Volver a la partida padre\",\"budget_line_category\":\"Categor\u00EDa\",\"budget_line_percentage\":\"Porcentaje\",\"budget_line_value\":\"Cantidad\",\"budget_lines_distribution\":\"Distribuci\u00F3n de los gastos de esta partida\",\"current_amount\":\"Presupuesto actual\",\"current_amount_per_inhabitant\":\"Presupuesto actual / hab.\",\"evolution\":\"Evoluci\u00F3n\",\"give_your_opinion\":\"Opina sobre esta partida\",\"give_your_opinion_cta\":\"\u00BFEntiendes de qu\u00E9 va esta partida? \u00BFTe parece mucho, poco? Opina\",\"initial_estimate\":\"Presupuesto inicial\",\"last_year\":\"El a\u00F1o pasado %{value}\",\"no_description\":\"No hay una descripci\u00F3n asociada a esta partida.\",\"no_distribution\":\"No hay distribuci\u00F3n asociada a esta partida.\",\"no_more_descendants\":\"No hay m\u00E1s subpartidas\",\"not_available\":\"No disp.\",\"percentage\":\"% sobre el total del pres.\",\"percentage_tooltip\":\"Porcentaje del presupuesto total que supone esta partida\",\"planned\":\"presupuestado\",\"planned_female\":\"presupuestada\",\"planned_per_inhabitant\":\"Presupuesto inicial / hab.\",\"planned_per_inhabitant_tooltip\":\"Cantidad presupuestada dividida por el n\u00FAmero de habitantes\",\"planned_tooltip\":\"Cantidad presupuestada\",\"raise_hand\":\"Levanta la mano\",\"real_value\":\"El %{kind} real son %{value}\",\"real_vs_planned\":\"% ejecuci\u00F3n\",\"real_vs_planned_tooltip\":\"Porcentaje de la partida que se ha ejecutado\",\"sub_budget_lines\":\"Dentro de esta partida\",\"twitter_text_expense\":\"En @gobierto: Gasto municipal de %{name} en %{budget_line_name} para el %{year}\",\"twitter_text_income\":\"En @gobierto: Ingreso municipal de %{name} en %{budget_line_name} para el %{year}\",\"updated\":\"actualizado\",\"updated_female\":\"actualizada\",\"vs_previous_year\":\"vs. ejercicio anterior\",\"vs_previous_year_tooltip\":\"Comparaci\u00F3n con los datos del ejercicio anterior\"}},\"budgets\":{\"guide\":{\"budget_execution\":\"La ejecuci\u00F3n presupuestaria\",\"budget_execution_p1_html\":\"Aprobar un presupuesto no significa que se quede escrito en piedra. A lo largo del a\u00F1o surgen imprevistos que cambian la cantidad o la finalidad de los gastos. Estos cambios se anotan en otro documento: la \\\\u003ca href=/presupuestos/ejecucion/%{year}\\\\\"\\\\u003eejecuci\u00F3n presupuestaria\\\\u003c/a\\\\u003e.\",\"budget_execution_p2\":\"Para saber si nuestro ayuntamiento ha planificado bien las cuentas s\u00F3lo tenemos que comparar el presupuesto y la ejecuci\u00F3n: \u00BFHa gastado m\u00E1s de lo presupuestado, le ha sobrado dinero o se ha ajustado a lo previsto?.\",\"capital_income\":\"Ingresos de capital\",\"capital_income_p1\":\"Proceden de la venta de propiedades municipales como solares o fincas. Tambi\u00E9n pueden proceder de fondos europeos.\",\"classification\":\"Clasificaci\u00F3n presupuestaria\",\"classification_p1\":\"Todo presupuesto tiene ingresos y los gastos. Los ingresos est\u00E1n clasificados de una manera econ\u00F3mica, que establece su origen. Los gastos, por otra parte, son funcionales y econ\u00F3micos.\",\"debt\":\"Deuda viva: Cu\u00E1nto debe tu municipio\",\"description\":\"El presupuesto municipal es el documento que explica c\u00F3mo se gestiona el dinero p\u00FAblico durante un a\u00F1o. Aqu\u00ED te explicamos los conceptos m\u00E1s importantes para que no te pierdas en su lectura.\",\"economic\":\"Gasto econ\u00F3mico\",\"economic_p1\":\"Indica la naturaleza del gasto. Por ejemplo, \u201CGastos de personal\u201D, que engloba los sueldos de todos los funcionarios seg\u00FAn su categor\u00EDa. Es similar a la clasificaci\u00F3n econ\u00F3mica de los ingresos.\",\"economic_p2\":\"En un presupuesto oficial, los apartados principales se llaman cap\u00EDtulos. Y a su vez, cada cap\u00EDtulo se divide en art\u00EDculos, conceptos y subconceptos.\",\"execution\":\"Ejecuci\u00F3n presupuestaria\",\"expense_economic_1_desc\":\"Sueldos de funcionarios, indemnizaciones, cotizaciones y planes de pensiones para todo el personal contratado.\",\"expense_economic_2_desc\":\"Suministros, materiales y gastos de servicios o trabajos realizados por empresas ajenas contratadas.\",\"expense_economic_3_desc\":\"Pago de intereses derivados de operaciones financieras.\",\"expense_economic_4_desc\":\"Aportaciones a otras entidades o administraciones (estatales, auton\u00F3micas o empresas privadas) para financiar operaciones corrientes.\",\"expense_economic_5_desc\":\"Son fondos que cubren situaciones de emergencia y gastos no previstos.\",\"expense_economic_6_desc\":\"Creaci\u00F3n de nuevos equipamientos o infraestructuras y adquisici\u00F3n de bienes inventariables.\",\"expense_economic_7_desc\":\"Pago de cr\u00E9ditos para financiar operaciones de capital, que hayan financiado inversiones reales.\",\"expense_economic_8_desc\":\"Adquisici\u00F3n de activos financieros para la construcci\u00F3n de dep\u00F3sitos y fianzas exigidos.\",\"expense_economic_9_desc\":\"Pago de amortizaci\u00F3n de pasivos financieros (como por ejemplo, la deuda).\",\"expense_functional_0_desc\":\"Esta partida se destina a pagar la deuda acumulada por el ayuntamiento.\",\"expense_functional_1_desc\":\"Esta partida cubre las necesidades m\u00EDnimas y obligatorias de un municipio.\",\"expense_functional_2_desc\":\"Es el dinero que se destina a la prevenci\u00F3n y la asistencia. Por ejemplo, el fomento del empleo.\",\"expense_functional_3_desc\":\"Afecta a los servicios que mejoran la calidad de vida: sanidad, educaci\u00F3n, cultura y ocio.\",\"expense_functional_4_desc\":\"Aqu\u00ED entra lo que ayuda a desarrollar el potencial de los distintos sectores econ\u00F3micos.\",\"expense_functional_9_desc\":\"Aqu\u00ED se agrupan los gastos del propio ayuntamiento y dem\u00E1s organismos p\u00FAblicos.\",\"expenses\":\"Gastos\",\"expenses_how\":\"\u00BFC\u00F3mo usa el ayuntamiento el dinero de todos los vecinos? Los gastos se pueden clasificar de dos formas: desde el punto de vista funcional (en qu\u00E9 se gasta) y econ\u00F3mico (c\u00F3mo se gasta).\",\"expenses_per_inhabitant\":\"El gasto por habitante fue de...\",\"expenses_types\":\"Tipos de gasto\",\"expenses_types_p1\":\"\u00BFC\u00F3mo usa el ayuntamiento el dinero de todos los vecinos? Aqu\u00ED se detalla todo. Los gastos se pueden clasificar de dos formas: desde el punto de vista funcional (en qu\u00E9 se gasta) y econ\u00F3mico (c\u00F3mo se gasta). La cantidad de dinero es la misma, pero la vemos desde dos \u00E1ngulos.\",\"financial_income\":\"Ingresos financieros\",\"financial_income_p1\":\"Pueden ser dep\u00F3sitos bancarios inmovilizados o cr\u00E9ditos concedidos por entidades privadas, como bancos o aseguradoras.\",\"functional\":\"Gasto funcional\",\"functional_p1\":\"Es la m\u00E1s explicativa: nos dice, por ejemplo, cu\u00E1nto se gasta en la recogida de basura o en instalaciones deportivas. Tambi\u00E9n se la conoce como clasificaci\u00F3n por partidas de gasto.\",\"functional_p2\":\"En un presupuesto oficial se divide en \u00E1reas, y \u00E9stas a su vez en pol\u00EDticas, grupos y programas. Este nivel de profundidad permite saber con detalle a d\u00F3nde va el dinero.\",\"how_much_debt\":\"\u00BFCu\u00E1nto debe tu municipio?\",\"how_much_debt_p1\":\"La deuda viva de un municipio indica lo que debe el ayuntamiento a los bancos y otras entidades financieras. No hay que confundirla con el total del d\u00E9ficit del municipio (la diferencia entre los ingresos y los gastos).\",\"how_much_debt_p2\":\"La deuda viva s\u00F3lo incluye lo que se debe a las entidades financieras.\",\"how_much_debt_p3\":\"Unos municipios tienen mayor capacidad de endeudamiento que otros. Es posible que un municipio tenga m\u00E1s deuda que otro, pero si su econom\u00EDa es m\u00E1s fuerte, tendr\u00E1 m\u00E1s capacidad para soportarla y reducirla.\",\"how_to_read\":\"\u00BFY c\u00F3mo se lee?\",\"how_to_read_p1_html\":\"Todos los presupuestos municipales tienen la misma estructura, definida legalmente en la \\\\u003ca href=\\\\\"https://www.boe.es/buscar/doc.php?id=BOE-A-2008-19916\\\\\"\\\\u003eOrden EHA/3565/2008\\\\u003c/a\\\\u003e. La estructura b\u00E1sica es sencilla: se divide en ingresos y gastos. Es decir, responde a las preguntas \u00BFDe d\u00F3nde sale el dinero? (ingresos) y \u00BFen qu\u00E9 se gasta? (gastos).\",\"income\":\"Ingresos\",\"income_1_desc\":\"Gravan la fuente de la renta, los frutos del patrimonio o de una actividad econ\u00F3mica.\",\"income_2_desc\":\"Algunos municipios recaudan una parte del IVA y otros impuestos especiales.\",\"income_3_desc\":\"Precios p\u00FAblicos y contribuciones por contraprestaciones municipales.\",\"income_4_desc\":\"Dinero que el ayuntamiento recibe del Estado y de la Comunidad Aut\u00F3noma.\",\"income_5_desc\":\"Rentas de patrimonio del municipio. Son los beneficios sobre bienes que no se destinan a servicio p\u00FAblico.\",\"income_6_desc\":\"Venta de solares y fincas r\u00FAsticas.\",\"income_7_desc\":\"Ingresos de naturaleza no tributaria destinados a financiar gastos de capital.\",\"income_8_desc\":\"Devoluci\u00F3n de fianzas o dep\u00F3sitos inmovilizados.\",\"income_9_desc\":\"Cr\u00E9ditos solicitados a entidades privadas.\",\"income_p1\":\"Para empezar, los ingresos se dividen seg\u00FAn su naturaleza econ\u00F3mica, es decir, de d\u00F3nde viene el dinero y qu\u00E9 \u201Cforma\u201D tiene: Si es un cr\u00E9dito bancario, una propiedad municipal que se ha vendido o un impuesto.\",\"income_p2\":\"En %{year} se ingresaron...\",\"intro_p1\":\"La Junta municipal \u2013formada por el alcalde y los responsables de cada \u00E1rea de gobierno\u2013 dise\u00F1a el presupuesto, lo redacta a trav\u00E9s de la concejal\u00EDa de Hacienda y lo presenta en el pleno, que es el \u00F3rgano de m\u00E1xima representaci\u00F3n pol\u00EDtica municipal.\",\"intro_p2\":\"Una vez all\u00ED, todos los concejales lo estudian y sugieren modificaciones. Finalmente se somete a votaci\u00F3n y se aprueba.\",\"intro_p3\":\"El presupuesto tiene que quedar aprobado antes del 31 de diciembre del a\u00F1o anterior. Es decir, el presupuesto de 2016 tiene que estar aprobado en diciembre de 2015, si no, se prorroga autom\u00E1ticamente.\",\"regular_income\":\"Ingresos corrientes\",\"regular_income_p1\":\"Impuestos y tasas que recauda el ayuntamiento, o dinero que el Estado transfiere a cada municipio. Son los m\u00E1s habituales.\",\"sources\":\"Fuentes\",\"sources_p1_html\":\"Para elaborar esta gu\u00EDa hemos tomado como referencia la estructura oficial de un presupuesto municipal, definida en la \\\\u003ca href=\\\\\"https://www.boe.es/buscar/doc.php?id=BOE-A-2008-19916\\\\\"\\\\u003eOrden EHA/3565/2008\\\\u003c/a\\\\u003e y nos hemos inspirado en otros documentos como \\\\u003ca href=\\\\\"http://www.ocmcartagena.org/files/archive/Entendiendo-un-presupuesto-municipal.pdf\\\\\"\\\\u003eEntendiendo un presupuesto municipal\\\\u003c/a\\\\u003e y \\\\u003ca href=\\\\\"https://docs.google.com/presentation/d/1oysDrJvlFxP0sKlzBalxvrV3lzSE5OCSKY7qd5yYpcA/pub?start=false\\\\u0026loop=false\\\\u0026delayms=3000\\\\u0026slide=id.p\\\\\"\\\\u003eGu\u00EDa de introducci\u00F3n a los presupuestos municipales\\\\u003c/a\\\\u003e.\",\"title\":\"C\u00F3mo funciona un presupuesto municipal\",\"types_income\":\"Tipos de ingreso\",\"types_income_p1\":\"Los ingresos se dividen en nueve apartados y cada uno de ellos en varios subapartados. Estas divisiones permiten profundizar para conocer la procedencia exacta de cada ingreso.\",\"types_income_p2\":\"Por ejemplo: dentro de Impuestos indirectos se encuentran los Consumos espec\u00EDficos. Y dentro de este \u00FAltimo, est\u00E1n los Impuestos del alcohol o el tabaco. En un presupuesto oficial, los apartados principales se llaman cap\u00EDtulos. Y a su vez, cada cap\u00EDtulo se divide en art\u00EDculos, conceptos y subconceptos.\",\"types_income_p3\":\"En Gobierto lo hemos simplificado para que s\u00F3lo tengas que buscar el nombre de cada apartado.\"},\"index\":{\"at_a_glance\":\"Evoluci\u00F3n del gasto y comparaci\u00F3n\",\"at_years_end\":\"* a cierre del %{year}\",\"budget_guide\":\"Consulta la Gu\u00EDa del Presupuesto\",\"budget_lines_block\":{\"intro\":\"Estas son las partidas presupuestarias m\u00E1s importantes en tu municipio\",\"title\":\"Partidas presupuestarias\"},\"budget_receipt\":{\"intro\":\"Comprueba a qu\u00E9 se dedican tus aportaciones\",\"title\":\"El recibo de tus impuestos\"},\"budget_slides\":{\"slide_1\":\"Gasto en asistencia social por habitante\",\"title\":\"Los presupuestos de un vistazo\"},\"budgets_comparision\":{\"button\":\"Comparar\",\"text\":\"Compara el presupuesto del %{site} con el de otros municipios desde\"},\"category_percentage\":\"Porcentaje\",\"category_value\":\"Cantidad\",\"context\":\"Contexto\",\"data_of_year\":\"* datos del %{year}\",\"debt\":\"Deuda\",\"debt_tooltip\":\"Deuda del sector de las administraciones p\u00FAblicas %{of_the_organization_name}\",\"description\":\"En esta p\u00E1gina te contamos c\u00FAal es la distribuci\u00F3n de los presupuestos, cu\u00E1l es el estado de ejecuci\u00F3n de cada partida, qui\u00E9nes son los proveedores con los que trabajamos, y c\u00F3mo ha evolucionado el gasto por habitante.\",\"executed\":\"Ejecuci\u00F3n del pres. actual\",\"executed_percent\":\"%{percentage}% del presupuesto actual\",\"executed_percent_other_year_html\":\"En %{year} fue un %{link}\",\"executed_tooltip\":\"Cantidad ejecutada respecto al presupuesto actual (presupuesto inicial m\u00E1s modificaciones)\",\"execution_block\":{\"button\":\"Consulta la ejecuci\u00F3n completa\",\"expense\":\"Gastos\",\"income\":\"Ingresos\",\"intro\":\"As\u00ED va la ejecuci\u00F3n del presupuesto municipal.\",\"last_update\":\"\u00DAltima actualizaci\u00F3n: %{date}.\",\"title\":\"Ejecuci\u00F3n\"},\"expenses\":\"Ingresos\",\"expenses_per_inhabitant\":\"Gasto por habitante\",\"expenses_per_inhabitant_tooltip\":\"Presupuesto inicial dividido por el n\u00FAmero de habitantes\",\"expenses_per_inhabitant_updated\":\"Pres. por hab. actual\",\"header\":\"Presupuestos\",\"in_total\":\"En total\",\"income\":\"Ingresos\",\"income_per_inhabitant\":\"Ingreso por habitante\",\"income_per_inhabitant_tooltip\":\"Presupuesto inicial dividido por el n\u00FAmero de habitantes\",\"inhabitants\":\"Habitantes\",\"inhabitants_tooltip\":\"N\u00FAmero de habitantes\",\"initial_estimate\":\"sobre el pres. inicial\",\"initial_estimate_per_inhabitant\":\"sobre el pres. inicial por hab.\",\"less\":\"menos\",\"level_1_category\":\"Categor\u00EDa nivel 1\",\"level_2_category\":\"Categor\u00EDa nivel 2\",\"main_budget_levels_legend_down\":\"Han bajado\",\"main_budget_levels_legend_one\":\"Cambio entre este a\u00F1o\",\"main_budget_levels_legend_two\":\"y el pasado\",\"main_budget_levels_legend_up\":\"Han subido\",\"main_budget_levels_per_inhabitant\":\"por habitante\",\"main_budget_levels_timeline\":\"Compara gastos e ingresos a\u00F1o por a\u00F1o\",\"main_budget_levels_tooltip_article\":\"desde\",\"main_budget_levels_tooltip_down\":\"Ha bajado un\",\"main_budget_levels_tooltip_up\":\"Ha subido un\",\"main_budget_lines\":\"Los principales ingresos y gastos %{from_your_organization_name}\",\"main_budget_lines_expense\":\"Gastos\",\"main_budget_lines_income\":\"Ingresos\",\"more\":\"m\u00E1s\",\"most_interesting_budget_lines\":\"Gastos que m\u00E1s te interesan\",\"most_interesting_budget_lines_description\":\"Te mostramos algunas de las partidas que m\u00E1s nos afectan directamente en nuestro d\u00EDa a d\u00EDa como ciudadanos. Tambi\u00E9n puedes consultar el explorador completo.\",\"not_available_short\":\"No disp.\",\"note_about_the_data\":\"Nota sobre los datos\",\"note_about_the_data_title\":\"La base de datos que utilizamos no incluye datos para el 100% de los municipios, por lo que las medias est\u00E1n calculadas solo con los datos que existen (que son la gran mayor\u00EDa). M\u00E1s informaci\u00F3n en nuestras preguntas frecuentes\",\"per_person\":\"Por habitante\",\"planned_vs_executed_other_year_html\":\"En %{year} fue %{link}\",\"search_for_a_budget_line\":\"Busca una partida\",\"see_all\":\"ver todos\",\"stories_header\":\"Te explicamos el presupuesto\",\"story_1\":{\"lede\":\"Te contamos cuales son las prioridades presupuestarias para el 2017 en torno a las que hemos articulado el plan econ\u00F3mico.\",\"title\":\"Actuaciones de car\u00E1cter general\"},\"story_2\":{\"lede\":\"Te contamos cuales son las prioridades presupuestarias para el 2017 en torno a las que hemos articulado el plan econ\u00F3mico.\",\"title\":\"Presupuestos y medio ambiente\"},\"story_3\":{\"lede\":\"Te contamos cuales son las prioridades presupuestarias para el 2017 en torno a las que hemos articulado el plan econ\u00F3mico.\",\"title\":\"Potenciando el deporte\"},\"title\":\"Presupuestos municipales de %{place} - %{year}\",\"top_expense_category\":\"Categor\u00EDa\",\"top_expense_value\":\"Cantidad\",\"top_income_category\":\"Categor\u00EDa\",\"top_income_value\":\"Cantidad\",\"total_expenses\":\"Gasto total\",\"total_expenses_tooltip\":\"Presupuesto inicial\",\"total_expenses_updated\":\"Presupuesto actual\",\"visualize\":\"Visualiza los gastos por habitante o el total\"}},\"budgets_elaboration\":{\"index\":{\"at_a_glance\":\"Evoluci\u00F3n del gasto y comparaci\u00F3n\",\"auto_funding\":\"Capacidad autofinanciaci\u00F3n\",\"auto_funding_tooltip\":\"Porcentaje que suponen los ingresos fiscales respecto de los ingresos corrientes\",\"by_custom_category\":\"por \u00E1rea\",\"by_economic_expense\":\"en qu\u00E9 se gasta\",\"by_economic_income\":\"en qu\u00E9 se ingresa\",\"by_functional_expense\":\"para qu\u00E9\",\"category_percentage\":\"% s/ Total\",\"category_value\":\"Importe\",\"context\":\"Contexto\",\"debt_level\":\"Nivel de endeudamiento\",\"debt_level_tooltip\":\"Necesidad de financiacio\u0301n externa para poder hacer frente a sus gastos, una vez utilizados los recursos tributarios y las subvenciones y transferencias\",\"description\":\"El equipo de gobierno publica el borrador del presupuesto del pr\u00F3ximo ejercicio para debatir en abierto con oposici\u00F3n y vecinos. Entre todos podemos elaborar el presupuesto que m\u00E1s conviene a %{place_name}.\",\"diff_previous\":\"vs. anterior\",\"expenses_per_inhabitant\":\"Gasto por habitante\",\"expenses_per_inhabitant_tooltip\":\"Presupuesto inicial dividido por el n\u00FAmero de habitantes\",\"explore_the_detail\":\"Explora el detalle\",\"header\":\"Tramitaci\u00F3n del presupuesto %{year}\",\"in_total\":\"En total\",\"income_per_inhabitant\":\"Ingreso por habitante\",\"income_per_inhabitant_tooltip\":\"Presupuesto inicial dividido por el n\u00FAmero de habitantes\",\"main_budget_levels_timeline\":\"Compara gastos e ingresos a\u00F1o por a\u00F1o\",\"main_budget_lines\":\"Los principales ingresos y gastos %{from_your_organization_name}\",\"main_budget_lines_expense\":\"Gastos\",\"main_budget_lines_income\":\"Ingresos\",\"metric_boxes_data\":\"Los datos\",\"metric_boxes_data_description\":\"As\u00ED cambiar\u00E1 el presupuesto de cara al pr\u00F3ximo ejercicio\",\"net_savings\":\"Ahorro neto\",\"net_savings_tooltip\":\"Capacidad que tiene la entidad de hacer frente\",\"next_year_proposal\":\"Propuesta para el %{year}\",\"no_data\":\"No hay datos para esta clasificaci\u00F3n\",\"note_about_the_data\":\"Nota sobre los datos\",\"note_about_the_data_title\":\"La base de datos que utilizamos no incluye datos para el 100% de los municipios, por lo que las medias est\u00E1n calculadas solo con los datos que existen (que son la gran mayor\u00EDa). M\u00E1s informaci\u00F3n en nuestras preguntas frecuentes\",\"per_person\":\"Por habitante\",\"proposal\":\"Propuesta\",\"total_expenses\":\"Gasto total\",\"total_expenses_tooltip\":\"Presupuesto inicial\",\"total_income\":\"Ingreso total\",\"total_income_tooltip\":\"Presupuesto inicial\",\"visualize\":\"Visualiza los gastos por habitante o el total\"}},\"budgets_execution\":{\"execution_table\":{\"deviation\":\"Desviaci\u00F3n\",\"executed\":\"Ejecutado\",\"planned\":\"Pres.\",\"view_less\":\"Ver menos\",\"view_more\":\"Ver m\u00E1s\"},\"index\":{\"budget_guide\":\"Consulta nuestra Gu\u00EDa del presupuesto\",\"budget_lines_expense_higher\":\"Partidas de gastos muy superiores al presupuesto\",\"budget_lines_expense_lower\":\"Partidas de gastos muy inferiores al presupuesto\",\"budget_lines_income_higher\":\"Partidas de ingresos muy superiores al presupuesto\",\"budget_lines_income_lower\":\"Partidas de ingresos muy inferiores al presupuesto\",\"category\":\"Categor\u00EDa\",\"custom_button\":\"Personalizada\",\"description\":\"La ejecuci\u00F3n es la cantidad que finalmente se ha gastado sobre el presupuesto inicial modificado. Es normal que haya desviaciones ya que es imposible preveer todos los gastos con precisi\u00F3n absoluta\",\"economic\":\"Econ\u00F3mica\",\"economic_button\":\"En qu\u00E9 se gasta\",\"euros\":\"En euros\",\"execution_disclaimer\":\"Es normal que haya desviaciones ya que es imposible preveer todos los gastos con precisi\u00F3n absoluta.\",\"execution_help\":\"La ejecuci\u00F3n es la cantidad que finalmente se ha gastado sobre el presupuesto inicial actualizado.\",\"expenses_executed\":\"Gastos ejecutados\",\"expenses_planned\":\"Gastos presupuestados\",\"functional\":\"Functional\",\"functional_button\":\"Para qu\u00E9 se gasta\",\"higher_execution\":\"Mayor ejecuci\u00F3n\",\"income_executed\":\"Ingresos ejecutados\",\"income_planned\":\"Ingresos presupuestados\",\"initial_estimate\":\"Presupuesto inicial\",\"initial_estimate_per_inhabitant\":\"Presupuesto inicial por habitante\",\"lower_execution\":\"Menor ejecuci\u00F3n\",\"metric\":{\"execution\":{\"expenses_title\":\"Ejecuci\u00F3n de gastos\",\"income_title\":\"Ejecuci\u00F3n de ingresos\",\"previous_execution_message\":\"En el %{year} la ejecuci\u00F3n fue del %{percentage}\"}},\"percentage\":\"Porcentaje\",\"sort\":\"Ordenar\",\"title\":\"Ejecuci\u00F3n presupuestaria\",\"tooltip_disclaimer\":\"\\\\u003cstrong\\\\u003eEsta es una aproximaci\u00F3n\\\\u003c/strong\\\\u003e. \\\\u003cbr /\\\\u003e A lo largo del a\u00F1o surgen imprevistos que cambian la cantidad o la finalidad de los gastos o ingresos.\",\"value\":\"Valor\",\"vis\":{\"absolute\":\"Ejecuci\u00F3n en \u20AC\",\"empty_lines\":\"No hay datos disponibles para esta clasificaci\u00F3n en este a\u00F1o. Por favor, selecciona otro filtro.\",\"expenses\":{\"title\":\"As\u00ED va la ejecuci\u00F3n de los gastos\"},\"income\":{\"title\":\"As\u00ED va la ejecuci\u00F3n de los ingresos\"},\"lines_title\":\"Partidas presupuestarias\",\"percent\":\"% de progreso\",\"percent_log\":\"% de progreso (log)\",\"tooltip\":\"Se ha ejecutado un\",\"tooltip_budgeted\":\"Presupuestado inicial\",\"tooltip_budgeted_updated\":\"Presupuestado actualizado\",\"tooltip_executed_amount\":\"Importe ejecutado\"}},\"widget_template_deviation\":{\"expense\":\"Gastos\",\"income\":\"Ingresos\",\"planned\":\"presupuestados\",\"real\":\"reales\"}},\"common\":{\"budget_line_description_html\":\"Esta partida comprende los %{kind_what} en %{description}. Si quieres saber m\u00E1s sobre esta partida puedes consultar la partida padre: %{link}\",\"expense\":\"gasto\",\"expenses\":\"gastos\",\"income\":\"ingreso\",\"incomes\":\"ingresos\"},\"events\":{\"gobierto_budgets_budgets_updated\":\"Presupuestos actualizados\"},\"exports\":{\"budget_lines_description\":\"Compara gastos e ingresos a\u00F1o por a\u00F1o\",\"budget_lines_title\":\"Partidas presupuestarias\",\"invoices_description\":\"Datos por a\u00F1o\",\"invoices_title\":\"Proveedores y Facturas\"},\"featured_budget_lines\":{\"gobierto_site_template\":{\"how_much_place_in\":\"\u00BFCu\u00E1nto se gasta %{place} en...\",\"last_year\":\"El a\u00F1o pasado gastamos\",\"per_person\":\"Por habitante\",\"show_me_another\":\"Mu\u00E9strame otra\",\"title\":\"Algunos gastos destacados\",\"total\":\"Gasto total\"}},\"feedback\":{\"ask_more_information\":{\"ask_for_feedback\":\"Escribe tu correo para que %{your_organization_name} te pueda contestar\",\"send\":\"Enviar\",\"your_email\":\"Tu correo-e\"},\"follow\":{\"follow\":\"Seguir\",\"your_email\":\"Tu correo-e\"},\"follow_success\":{\"error\":\"Parece que el email introducido no es v\u00E1lido. Por favor rev\u00EDsalo\",\"share\":\"\u00BFQuieres compartir estos datos en\",\"share_text\":\"Informate y opina sobre el presupuesto de %{place_name}\",\"success\":\"\u00A1Genial! Comprueba tu correo y pincha en el enlace que te enviamos\"},\"step1\":{\"answer1_0\":\"S\u00ED\",\"answer1_1\":\"No\",\"understand\":\"\u00BFEntiendes de qu\u00E9 va esta partida?\"},\"step2_no\":{\"answer_html\":\"El \\\\u003cstrong\\\\u003e%{datum}\\\\u003c/strong\\\\u003e de personas han respondido que \\\\u003cstrong\\\\u003eNo entiende de qu\u00E9 va esta partida\\\\u003c/strong\\\\u003e\",\"ask\":\"Puedes solicitar a tu alcalde que amplie la informaci\u00F3n sobre esta y otras partidas\"},\"step2_yes\":{\"option1_html\":\"Me parece \\\\u003cspan\\\\u003ePOCO\\\\u003c/span\\\\u003e\",\"option2_html\":\"Me parece \\\\u003cspan\\\\u003eAPROPIADO\\\\u003c/span\\\\u003e\",\"option3_html\":\"Me parece \\\\u003cspan\\\\u003eMUCHO\\\\u003c/span\\\\u003e\",\"question\":\"\u00BFCrees que la cantidad de gasto es apropiada?\"},\"step3\":{\"option1\":\"Poco\",\"option2\":\"Apropiado\",\"option3\":\"Mucho\",\"thanks\":\"Gracias por tu opini\u00F3n. Esto es lo que piensa el resto de la gente que ha opinado:\"}},\"feedback_mailer\":{\"new_feedback_request\":{\"body\":\"Has recibido una nueva petici\u00F3n de informaci\u00F3n para la partida %{budget_line_name} (%{year}) de una persona con el email %{person_email}.\",\"body_budgets\":\"Has recibido una nueva petici\u00F3n de informaci\u00F3n para los presupuestos de tu municipio de una persona con el email %{person_email}.\",\"subject\":\"Has recibido una nueva petici\u00F3n de informaci\u00F3n\"}},\"indicators\":\"Indicadores\",\"indicators_intro\":\"Conoce los presupuestos de %{place} a trav\u00E9s de sus principales cifras: ahorro bruto, inversi\u00F3n por habitante o financiaci\u00F3n de inversiones.\",\"invoices\":{\"show\":{\"empty\":\"Ning\u00FAn filtro tiene datos\",\"fromto\":\"De A N\u00BA Fact.\",\"invoiced\":\"Importe facturado\",\"more\":\"M\u00E1s de\",\"table\":{\"fields\":{\"date\":\"Fecha\",\"paid\":\"Pagado\",\"payment_date\":\"Fecha de pago\",\"payment_date_limit\":\"Fecha prevista de pago\",\"provider_id\":\"NIF\",\"provider_name\":\"Proveedor\",\"subject\":\"Concepto\",\"value\":\"Cantidad\"},\"pager\":{\"first\":\"Primero\",\"format\":\"P\u00E1ginas %{tpl} de %{tpl2}\",\"last\":\"\u00DAltimo\",\"next\":\"Siguiente\",\"prev\":\"Anterior\"}}}},\"layouts\":{\"application\":{\"budgets\":\"Presupuestos\"},\"menu_subsections\":{\"data\":\"Datos\",\"elaboration\":\"Elaboraci\u00F3n\",\"execution\":\"Ejecuci\u00F3n\",\"guide\":\"Gu\u00EDa\",\"indicators\":\"Indicadores\",\"providers\":\"Proveedores y Facturas\",\"receipt\":\"Recibo\"}},\"providers\":{\"index\":{\"all_invoices\":\"Todas las facturas\",\"amount_distribution\":\"Distribuci\u00F3n por importes\",\"and_more_html\":\"y \\\\u003cspan id=\\\\\"providers-number\\\\\"\\\\u003en\\\\u003c/span\\\\u003e proveedores m\u00E1s\",\"are_from\":\"son de\",\"check_detail\":\"Consulta el detalle\",\"corporation_sa\":\"sociedades an\u00F3nimas\",\"corporation_sl\":\"sociedades limitadas y otras\",\"description\":\"\u00BFA qu\u00E9 proveedores contrata %{the_organization_name}? \u00BFQu\u00E9 facturas paga? Desde esta secci\u00F3n podr\u00E1s consultar y revisar el detalle de cada uno de los pagos que realiza %{the_organization_name}.\",\"freelances\":\"aut\u00F3nomos\",\"invoices\":\"Facturas\",\"invoices_from_which\":\"De los cuales\",\"invoices_sum\":\"facturas suman un total de\",\"largest_provider_html\":\"El mayor proveedor supone un \\\\u003cspan id=\\\\\"largestProvider\\\\\"\\\\u003e\\\\u003c/span\\\\u003e de toda la facturaci\u00F3n\",\"last_12_months\":\"\u00DAltimos 12 meses\",\"last_3_months\":\"\u00DAltimos 3 meses\",\"less_than_1000_html\":\"El \\\\u003cspan id=\\\\\"lessThan1000\\\\\"\\\\u003e\\\\u003c/span\\\\u003e de las facturas son menores de 1.000 \u20AC\",\"loading\":\"Cargando...\",\"main_providers\":\"Principales proveedores\",\"mean_amount\":\"importe medio\",\"mean_and_median\":\"Media y mediana\",\"mean_and_median_summary\":\"Es decir, la mitad de las facturas son de este importe o inferior\",\"mean_summary\":\"Importe resultante de sumar los importes de todas las facturas y dividirlo por el n\u00FAmero de facturas\",\"median_amount\":\"importe mediano\",\"months_distribution\":\"Distribuci\u00F3n por meses\",\"percentile_10_html\":\"El \\\\u003cspan id=\\\\\"percentile10\\\\\"\\\\u003e\\\\u003c/span\\\\u003e de las facturas concentran el 10 % de la facturaci\u00F3n\",\"percentile_50_html\":\"El \\\\u003cspan id=\\\\\"percentile50\\\\\"\\\\u003e\\\\u003c/span\\\\u003e de las facturas concentran el 50 % de la facturaci\u00F3n\",\"previous\":\"Anteriores\",\"sum_amount\":\"IMPORTE ACUMULADO\",\"this_year\":\"Este a\u00F1o\",\"view_data_from\":\"Ver datos de\"}},\"receipts\":{\"show\":{\"description\":\"Parte del presupuesto de tu municipio se financia directamente de impuestos y tasas locales. Calcula cu\u00E1nto aportas t\u00FA al presupuesto de acuerdo a tu vivienda, veh\u00EDculos...\",\"detail\":\"Detalle de tu contribuci\u00F3n\",\"explanation\":\"Introduce las cantidades que has pagado para cada uno de los conceptos en\",\"pick_to_calculate\":\"Selecciona para calcular\",\"share\":\"Comp\u00E1rtelo\",\"share_text\":\"Comprueba cual es tu aportaci\u00F3n al presupuesto de\",\"title\":\"\u00BFCu\u00E1l es tu contribuci\u00F3n al presupuesto de %{site_name}?\",\"your_contribution\":\"Tu contribuci\u00F3n a los presupuestos de %{site_name}\"}},\"shared\":{\"data_updated_at\":{\"last_update\":\"Datos actualizados\"},\"enough_information\":{\"enough_information\":\"\u00BFSuficiente informaci\u00F3n?\",\"enough_information_cta\":\"Pide m\u00E1s informaci\u00F3n\",\"enough_information_desc\":\"Si considera que se tienen que incluir m\u00E1s informaci\u00F3n de estos datos para tener una visi\u00F3n m\u00E1s completa de la misma o sobre el uso de tus impuestos, comunic\u00E1noslo y te contestaremos\"}},\"visualizations\":{\"G_custom\":\"Gastos por \u00E1rea\",\"G_economic\":\"En qu\u00E9 se gasta\",\"G_functional\":\"Para qu\u00E9 se gasta\",\"I_custom\":\"Ingresos por \u00E1rea\",\"I_economic\":\"En qu\u00E9 se ingresa\",\"category_per_inhabitant\":\"%{category} por habitante\",\"expenses_per_inhabitant\":\"Gasto por habitante\",\"expenses_per_inhabitant_updated\":\"Gasto por habitante actual\",\"inhabitant_short\":\"hab\",\"mean_autonomy\":\"Media auton\u00F3mica\",\"mean_national\":\"Media estatal\",\"mean_province\":\"Media provincial\",\"previous_year_diff\":\"Cambio a\u00F1o anterior\",\"total_expenses\":\"Gasto total\"}},\"gobierto_calendars\":{\"calendar_integration\":{\"auth_error\":{\"message\":\"Las credenciales del calendario no son v\u00E1lidas.\"},\"error\":{\"message\":\"Ha habido un problema sincronizando el calendario.\"},\"timeout_error\":{\"message\":\"El tiempo de conexi\u00F3n al servidor de calendarios ha expirado.\"}},\"events\":{\"gobierto_calendars_event_published\":\"%{subject_name}\",\"gobierto_calendars_event_updated\":\"%{subject_name}\"},\"fullcalendar\":{\"day\":\"D\u00EDa\",\"list\":\"Lista\",\"month\":\"Mes\",\"today\":\"Hoy\",\"week\":\"Semana\"}},\"gobierto_cms\":{\"events\":{\"gobierto_cms_page_created\":\"P\u00E1gina creada\",\"gobierto_cms_page_published\":\"P\u00E1gina publicada\",\"gobierto_cms_page_updated\":\"P\u00E1gina actualizada\",\"gobierto_cms_section_created\":\"Secci\u00F3n creada\",\"gobierto_cms_section_item_created\":\"P\u00E1gina a\u00F1adida a secci\u00F3n\",\"gobierto_cms_section_item_deleted\":\"P\u00E1gina borrada de secci\u00F3n\",\"gobierto_cms_section_updated\":\"Secci\u00F3n actualizada\"},\"pages\":{\"templates\":{\"page\":{\"documents\":\"Documentos\"}}}},\"gobierto_common\":{\"dynamic_content\":{\"table_component\":{\"attachment\":\"Documento\",\"download\":\"Descargar\",\"download_attachment\":\"Descargar documento\",\"view_content\":\"Ver contenido\"}},\"events\":{\"gobierto_common_collection_created\":\"Colecci\u00F3n creada\",\"gobierto_common_collection_updated\":\"Colecci\u00F3n actualizada\",\"gobierto_common_term_created\":\"T\u00E9rmino creado\",\"gobierto_common_term_updated\":\"T\u00E9rmino actualizado\"},\"visualizations\":{\"absolute\":\"Ejecuci\u00F3n en \u20AC\",\"adults\":\"Poblaci\u00F3n activa\",\"age\":\"Edad\",\"axis\":\"a\u00F1os\",\"between_25_44\":\"Entre 25 y 44\",\"cards\":{\"active_pop\":{\"figure_first\":\"del total\",\"figure_second\":\"personas\",\"title\":\"Poblaci\u00F3n activa\"},\"births\":{\"country\":\"Media estatal\",\"place\":\"%{place}\",\"province\":\"Media provincial\",\"title\":\"Tasa de nacimientos\"},\"budget_by_inhabitant\":{\"title\":\"Presupuesto por habitante\"},\"cars\":{\"title\":\"Coches por habitante\"},\"cars_tax\":{\"figure_first\":\"%{place}\",\"figure_second\":\"media provincial\",\"title\":\"Impuesto a los turismos\"},\"companies\":{\"title\":\"Empresas\"},\"construction_tax\":{\"figure_first\":\"%{place}\",\"figure_second\":\"media provincial\",\"title\":\"Impuesto a las construcciones\"},\"contracts_comparison\":{\"figure_first\":\"temporales\",\"figure_second\":\"indefinidos\",\"title\":\"Contratos en el mes pasado\"},\"contracts_sector\":{\"agriculture\":\"Agricultura\",\"construction\":\"Construcci\u00F3n\",\"industry\":\"Industria\",\"services\":\"Servicios\",\"title\":\"Contratos por sector\"},\"deaths\":{\"country\":\"Media estatal\",\"place\":\"%{place}\",\"province\":\"Media provincial\",\"title\":\"Tasa de defunciones\"},\"debt_by_inhabitant\":{\"title\":\"Deuda por habitante\"},\"debt_level\":{\"title\":\"Nivel de endeudamiento\"},\"economic_tax\":{\"title\":\"Impuesto a las actividades econ\u00F3micas\"},\"expenditure_rigidity\":{\"title\":\"Rigidez de gasto\"},\"financial_charge\":{\"title\":\"Carga financiera\"},\"financial_risk\":{\"title\":\"Riesgo financiero\"},\"freelancers\":{\"title\":\"Aut\u00F3nomos\"},\"frequency\":\"Actualizaci\u00F3n %{type}\",\"gross_saving\":{\"title\":\"Ahorro bruto\"},\"gross_savings_rate\":{\"title\":\"\u00CDndice de ahorro bruto\"},\"houses\":{\"figure_first\":\"familiares\",\"figure_second\":\"principales\",\"title\":\"Viviendas\"},\"ibi\":{\"first_column\":\"\",\"second_column\":\"Urbano\",\"third_column\":\"R\u00FAstico\",\"title\":\"Impuesto sobre bienes inmuebles\"},\"income\":{\"first_column\":\"\",\"second_column\":\"Por habitante\",\"third_column\":\"Por hogar\",\"title\":\"Renta municipal\"},\"income_overview\":{\"figure_first\":\"%{place}\",\"figure_second\":\"Espa\u00F1a\",\"title\":\"Renta bruta\"},\"investment_by_inhabitant\":{\"title\":\"Inversi\u00F3n por habitante\"},\"investment_financing\":{\"title\":\"Financiaci\u00F3n inversiones\"},\"liability_cost\":{\"title\":\"Coste deuda\"},\"meta\":{\"time\":\" en \",\"where\":\"En \"},\"net_saving\":{\"title\":\"Ahorro neto\"},\"net_savings_rate\":{\"title\":\"\u00CDndice de ahorro neto\"},\"per_capita_investment\":{\"title\":\"Inversi\u00F3n por habitante\"},\"per_capita_tax_burden\":{\"title\":\"Presi\u00F3n fiscal por habitante\"},\"population\":{\"title\":\"Habitantes\"},\"self_financing_capacity\":{\"title\":\"Capacidad de autofinanciaci\u00F3n\"},\"ss_members\":{\"title\":\"Afiliados a la Seguridad Social\"},\"tax_autonomy\":{\"title\":\"Autonom\u00EDa fiscal\"},\"unemployed_sector\":{\"agriculture\":\"Agricultura\",\"construction\":\"Construcci\u00F3n\",\"industry\":\"Industria\",\"services\":\"Servicios\",\"title\":\"Desempleados por sector\"},\"updated\":\"\u00DAltima actualizaci\u00F3n\"},\"country\":\"Espa\u00F1a\",\"elderly\":\"Mayores\",\"elderly_info\":\"El %{percent} de la poblaci\u00F3n tiene m\u00E1s de %{limit} a\u00F1os\",\"empty_lines\":\"No hay datos disponibles para esta clasificaci\u00F3n en este a\u00F1o. Por favor, selecciona otro filtro.\",\"frequency\":\"Actualizaci\u00F3n %{type}\",\"gross_income\":\"Renta bruta\",\"increase\":\"Aumentar\",\"inhabitant_short\":\"hab\",\"inhabitants\":\"Habitantes\",\"keep\":\"Mantener\",\"label\":\"habitantes\",\"less_25\":\"Menores de 25\",\"lines_title\":\"Partidas presupuestarias\",\"main_budget_levels_legend_down\":\"Han bajado\",\"main_budget_levels_legend_one\":\"Cambio entre este a\u00F1o\",\"main_budget_levels_legend_two\":\"y el pasado\",\"main_budget_levels_legend_up\":\"Han subido\",\"main_budget_levels_per_inhabitant\":\"por habitante\",\"main_budget_levels_tooltip_article\":\"desde\",\"main_budget_levels_tooltip_article_last\":\"desde el anterior\",\"main_budget_levels_tooltip_down\":\"Ha bajado un\",\"main_budget_levels_tooltip_up\":\"Ha subido un\",\"mean\":\"Edad media: %{age} a\u00F1os\",\"mean_autonomy\":\"Media auton\u00F3mica\",\"mean_national\":\"Media estatal\",\"mean_province\":\"Media provincial\",\"median\":\"Edad mediana: %{age} a\u00F1os\",\"men\":\"Hombres\",\"million\":\"mill\u00F3n\",\"mode\":\"Edad m\u00E1s com\u00FAn: %{age} a\u00F1os\",\"more_44\":\"Mayores de 44\",\"percent\":\"% de progreso\",\"percent_log\":\"% de progreso (log)\",\"previous_year_diff\":\"Cambio a\u00F1o anterior\",\"project\":\"Proyecto\",\"questions\":\"Preguntas\",\"reduce\":\"Reducir\",\"thousand\":\"mil\",\"time\":\" en \",\"title\":\"Riqueza y poblaci\u00F3n en la provincia\",\"tooltip\":\"Se ha ejecutado un\",\"tooltip_budgeted\":\"Presupuestado inicial\",\"tooltip_budgeted_updated\":\"Presupuestado actualizado\",\"tooltip_executed_amount\":\"Importe ejecutado\",\"unemployed\":\"Desempleada\",\"where\":\"En \",\"women\":\"Mujeres\",\"youth\":\"Menores\",\"youth_info\":\"El %{percent} de la poblaci\u00F3n tiene menos de %{limit} a\u00F1os\"},\"vue_components\":{\"block_header\":{\"all\":\"Todas\",\"none\":\"Ninguna\"},\"calendar\":{\"date\":\"Seleccione fecha\"},\"filters\":{\"clear\":\"Limpiar filtros\"},\"pagination\":{\"next\":\"Siguiente\",\"previous\":\"Anterior\"},\"read_more\":{\"less\":\"Ver menos\",\"more\":\"Ver m\u00E1s\"},\"table\":{\"customize_columns\":\"Personalizar columnas\",\"no_data\":\"No hay datos para este criterio\"}}},\"gobierto_dashboards\":{\"available_cards\":\"Tarjetas disponibles\",\"back\":\"atr\u00E1s\",\"changes\":\"Dashboard modificado\",\"date\":\"Fecha: \",\"default_title\":\"T\u00EDtulo del dashboard\",\"delete\":\"Eliminar\",\"delete_dialog\":\"Desea borrar el dashboard?\",\"discard\":\"cerrar sin guardar\",\"indicators_amount\":\"\u279E %{amount} indicadores\",\"instructions\":\"\\\\\"\u21E7 Selecciona un tipo de tarjeta e incluyela en el \u00E1rea central \u279E\\\\n\\\\nLuego podr\u00E1s configurarla.\\\\\"\\\\n\",\"objective\":\"Objetivo\",\"percentage\":\"Consecuci\u00F3n\",\"percentage_alt\":\"% consecuci\u00F3n\",\"placeholder\":\"Escribe el t\u00EDtulo del indicador o proyecto\",\"public\":\"P\u00FAblico\",\"save\":\"Guardar\",\"select\":\"Selecciona el indicador\",\"type\":\"Tipo\",\"value\":\"Alcanzado\",\"view_item\":\"Ver \u00EDtem\",\"widgets\":{\"html\":\"Contenido HTML\",\"indicator\":\"Indicador\",\"individual\":\"Individual\",\"table\":\"Tabla\"}},\"gobierto_data\":{\"accessibility\":{\"editor\":\"Editor SQL\"},\"data_type\":{\"boolean\":\"boolean\",\"date\":\"fecha\",\"datetime\":\"fecha y hora\",\"decimal\":\"decimal\",\"hstore\":\"hstore\",\"integer\":\"entero\",\"jsonb\":\"jsonb\",\"string\":\"cadena\",\"text\":\"texto\",\"time\":\"tiempo\",\"timestamp\":\"fecha y hora\",\"timestampz\":\"fecha y hora\"},\"events\":{\"gobierto_data_dataset_dataset_created\":\"Conjunto de datos creado\",\"gobierto_data_dataset_dataset_data_updated\":\"Datos de conjunto de datos actualizados\",\"gobierto_data_dataset_dataset_deleted\":\"Conjunto de datos eliminado\",\"gobierto_data_dataset_dataset_updated\":\"Conjunto de datos actualizado\"},\"layouts\":{\"application\":{\"gobierto_data\":\"Datos\"}},\"projects\":{\"all\":\"Todas\",\"buttonFork\":\"Haz click para crear una versi\u00F3n de esta consulta\",\"buttonQueries\":\"Ver consultas (c)\",\"buttonRecentQueries\":\"Ver consultas recientes (r)\",\"buttonRunQuery\":\"Ejecutar consulta (CMD/WIN + Enter)\",\"cancel\":\"Cancelar\",\"categories\":\"Categor\u00EDas\",\"createCopy\":\"Crear una copia\",\"dashboards\":\"Dashboards\",\"data\":\"Datos\",\"dataset\":\"Conjuntos de datos\",\"datasetUpdated\":\"\u00DAltimos datasets actualizados\",\"deleteQuery\":\"\u00BFEst\u00E1s seguro de que deseas eliminar esta consulta?\",\"deleteViz\":\"\u00BFEst\u00E1s seguro de que deseas eliminar esta visualizaci\u00F3n?\",\"description\":\"Descripci\u00F3n\",\"download\":\"Descargar\",\"downloadData\":\"Descargar datos\",\"edit\":\"Editar\",\"emptyRecentQueries\":\"No hay consultas recientes\",\"favs\":\"Favoritas\",\"frequency\":\"Frecuencia\",\"guide\":\"Gu\u00EDa para usar el editor SQL\",\"license\":\"Licencia\",\"link\":\"Enlace\",\"map\":\"Mapa\",\"modifiedQuery\":\"Consulta modificada\",\"modifiedVisualization\":\"Visualizaci\u00F3n modificada\",\"numberOfRows\":\"N\u00FAmero de registros\",\"preview\":\"Previsualizar\",\"private\":\"Privada\",\"queries\":\"Consultas\",\"query\":\"Consulta\",\"queryEmpty\":\"No hay consultas disponibles\",\"queryExecuted\":\"Consulta ejecutada en\",\"queryName\":\"Nombre consulta\",\"recents\":\"Recientes\",\"records\":\"Registros\",\"resetQuery\":\"Restablecer consulta\",\"resetViz\":\"Restablecer Visualizaci\u00F3n\",\"resources\":\"Recursos\",\"revert\":\"Revertir\",\"runQuery\":\"Ejecutar consulta\",\"save\":\"Guardar\",\"savedQuery\":\"Consulta guardada\",\"savedVisualization\":\"Visualizaci\u00F3n guardada\",\"sets\":\"Conjuntos\",\"showAll\":\"Ver todo\",\"showLess\":\"Ver menos\",\"sourceDataset\":\"Fuente\",\"sourceDatasetUrl\":\"Fuente url\",\"subject\":\"Tema\",\"summary\":\"Resumen\",\"updated\":\"Actualizado\",\"visEmpty\":\"No hay visualizaciones disponibles\",\"visName\":\"Nombre visualizaci\u00F3n\",\"visPrivate\":\"Tus visualizaciones\",\"visPublic\":\"Todas\",\"visualizations\":\"Visualizaciones\",\"visualize\":\"Visualizar\",\"yourQueries\":\"Tus consultas\"}},\"gobierto_exports\":{\"exports\":{\"index\":{\"no_submodules\":\"No hay ning\u00FAn subm\u00F3dulo activo\",\"subtitle\":\"Desde esta p\u00E1gina puedes descargar en formato reutilizable el contenido de este sitio.\",\"title\":\"Descarga datos\"}}},\"gobierto_indicators\":{\"events\":{\"gobierto_indicators_indicator_updated\":\"Indicador actualizado\"},\"indicators\":{\"gci\":{\"gci_description\":\"Los indicadores GCI (Global City Indicators), que reflejan la calidad de vida de la ciudad, los define el Banco Mundial, asociaci\u00F3n con el prop\u00F3sito de combatir la pobreza y apoyar el desarrollo. Los indicadores pueden variar seg\u00FAn el a\u00F1o seleccionado.\",\"gci_title\":\"Indicadores GCI\",\"title\":\"Indicadores %{year}\"},\"ip\":{\"ip_description\":\"Infoparticipa es un proyecto desarrollado por el LPCCP, desde el a\u00F1o 2012, cuyo objetivo es evaluar la informaci\u00F3n que se publica en las webs de las administraciones p\u00FAblicas para promover que mejore su transparencia y calidad.\",\"ip_title\":\"Indicadores Infoparticipa\",\"title\":\"Indicadores %{year}\"},\"ita\":{\"ita_description\":\"Los indicadores ITA (\u00CDndice de Transparencia de los Ayuntamientos) son una herramienta que la organizaci\u00F3n no gubernamental Transparencia Internacional pone a disposici\u00F3n de los ayuntamientos espa\u00F1oles para medir su nivel de transparencia. Eval\u00FAan la gesti\u00F3n realizada por el ayuntamiento de una ciudad a trav\u00E9s de un conjunto integrado de 80 indicadores agrupados en diversas \u00E1reas.\",\"ita_title\":\"Indicadores ITA\",\"title\":\"Indicadores %{year}\"},\"shared\":{\"latest_update_html\":\"\\\\u003cstrong\\\\u003e\u00DAltima actualizaci\u00F3n:\\\\u003c/strong\\\\u003e %{date}\"},\"template\":{\"calculation\":\"C\u00E1lculo\",\"false\":\"no se cumple\",\"methodology\":\"Metodolog\u00EDa\",\"more\":\"M\u00E1s informaci\u00F3n\",\"source\":\"Fuente\",\"true\":\"se cumple\"}},\"layouts\":{\"application\":{\"indicators\":\"Indicadores\"},\"navigation\":{\"sub\":{\"gci\":\"Indicadores GCI\",\"ip\":\"Indicadores Infoparticipa\",\"ita\":\"Indicadores ITA\"}}}},\"gobierto_investments\":{\"events\":{\"gobierto_investments_project_project_created\":\"Proyecto de inversi\u00F3n creado\",\"gobierto_investments_project_project_updated\":\"Proyecto de inversi\u00F3n actualizado\"},\"layouts\":{\"application\":{\"investments\":\"Inversiones\",\"investments_paragraph\":\"Consulta los proyectos que tiene en marcha el Ayuntamiento, los que empezar\u00E1n proximamente, y los planes a medio plazo. Detalle sobre el plan anual de inversiones y mecanismos de seguimiento de las obras en marcha.\"}},\"projects\":{\"back\":\"ver todo\",\"description\":\"Descripci\u00F3n\",\"detail_title\":\"Detalle del proyecto\",\"empty\":\"Sin resultados\",\"exit\":\"Salir\",\"gallery\":\"Galer\u00EDa\",\"list\":\"Lista\",\"loading\":\"Cargando datos...\",\"map\":\"Mapa\",\"project\":{\"one\":\"%{count} proyecto\",\"other\":\"%{count} proyectos\"},\"reset\":\"Limpiar filtros\",\"see\":\"Ver de nuevo\",\"showall\":\"Ver todo\",\"showless\":\"Ver menos\",\"summary\":\"Resumen por estados\",\"tech_sheet\":\"Ficha t\u00E9cnica\",\"tour\":\"Tour virtual\"}},\"gobierto_observatory\":{\"cards\":{\"active_pop\":{\"figure_first\":\"del total\",\"figure_second\":\"personas\",\"title\":\"Poblaci\u00F3n activa\"},\"births\":{\"country\":\"Media estatal\",\"place\":\"%{place}\",\"province\":\"Media provincial\",\"title\":\"Tasa de nacimientos\"},\"budget_by_inhabitant\":{\"title\":\"Presupuesto por habitante\"},\"cars\":{\"title\":\"Coches por habitante\"},\"cars_tax\":{\"figure_first\":\"%{place}\",\"figure_second\":\"media provincial\",\"title\":\"Impuesto a los turismos\"},\"companies\":{\"title\":\"Empresas\"},\"construction_tax\":{\"figure_first\":\"%{place}\",\"figure_second\":\"media provincial\",\"title\":\"Impuesto a las construcciones\"},\"contracts_comparison\":{\"figure_first\":\"temporales\",\"figure_second\":\"indefinidos\",\"title\":\"Contratos en el mes pasado\"},\"contracts_sector\":{\"agriculture\":\"Agricultura\",\"construction\":\"Construcci\u00F3n\",\"industry\":\"Industria\",\"services\":\"Servicios\",\"title\":\"Contratos por sector\"},\"deaths\":{\"country\":\"Media estatal\",\"place\":\"%{place}\",\"province\":\"Media provincial\",\"title\":\"Tasa de defunciones\"},\"debt_by_inhabitant\":{\"title\":\"Deuda por habitante\"},\"economic_tax\":{\"title\":\"Impuesto a las actividades econ\u00F3micas\"},\"freelancers\":{\"title\":\"Aut\u00F3nomos\"},\"frequency\":\"Actualizaci\u00F3n %{type}\",\"houses\":{\"figure_first\":\"familiares\",\"figure_second\":\"principales\",\"title\":\"Viviendas\"},\"ibi\":{\"first_column\":\"\",\"second_column\":\"Urbano\",\"third_column\":\"R\u00FAstico\",\"title\":\"Impuesto sobre bienes inmuebles\"},\"income\":{\"first_column\":\"\",\"second_column\":\"Bruta\",\"third_column\":\"Disponible\",\"title\":\"Renta municipal\"},\"income_overview\":{\"figure_first\":\"%{place}\",\"figure_second\":\"Espa\u00F1a\",\"title\":\"Renta bruta\"},\"investment_by_inhabitant\":{\"title\":\"Inversi\u00F3n por habitante\"},\"meta\":{\"time\":\" en \",\"where\":\"En \"},\"population\":{\"title\":\"Habitantes\"},\"ss_members\":{\"title\":\"Afiliados a la Seguridad Social\"},\"unemployed_sector\":{\"agriculture\":\"Agricultura\",\"construction\":\"Construcci\u00F3n\",\"industry\":\"Industria\",\"services\":\"Servicios\",\"title\":\"Desempleados por sector\"},\"updated\":\"\u00DAltima actualizaci\u00F3n\"},\"graphics\":{\"age_distribution\":{\"axis\":\"a\u00F1os\",\"label\":\"habitantes\",\"title\":\"Comprueba la distribuci\u00F3n por edades de tu municipio\"},\"population_pyramid\":{\"adults\":\"Poblaci\u00F3n activa\",\"age\":\"Edad\",\"country\":\"Espa\u00F1a\",\"elderly\":\"Mayores\",\"elderly_info\":\"El %{percent} de la poblaci\u00F3n tiene m\u00E1s de %{limit} a\u00F1os\",\"mean\":\"Edad media: %{age} a\u00F1os\",\"median\":\"Edad mediana: %{age} a\u00F1os\",\"men\":\"Hombres\",\"mode\":\"Edad m\u00E1s com\u00FAn: %{age} a\u00F1os\",\"unemployed\":\"Desempleada\",\"women\":\"Mujeres\",\"youth\":\"Menores\",\"youth_info\":\"El %{percent} de la poblaci\u00F3n tiene menos de %{limit} a\u00F1os\"},\"rent_distribution\":{\"gross_income\":\"Renta bruta\",\"inhabitants\":\"Habitantes\",\"million\":\"mill\u00F3n\",\"thousand\":\"mil\",\"title\":\"Riqueza y poblaci\u00F3n en la provincia\"},\"unemployment_age\":{\"between_25_44\":\"Entre 25 y 44\",\"less_25\":\"Menores de 25\",\"more_44\":\"Mayores de 44\",\"title\":\"Desempleo seg\u00FAn la edad\"},\"unemployment_rate\":{\"country\":\"Espa\u00F1a\",\"title\":\"Comparaci\u00F3n de la tasa de paro\"},\"unemployment_sex\":{\"men\":\"Hombres\",\"title\":\"Desempleo seg\u00FAn el sexo\",\"women\":\"Mujeres\"}},\"inhabitants\":\"hab\",\"intro\":\"Conoce %{place} a trav\u00E9s de sus principales cifras: la poblaci\u00F3n, el empleo, la econom\u00EDa y los presupuestos.\",\"layouts\":{\"application\":{\"observatory\":\"Observatorio\"},\"menu_subsections\":{\"banner_map\":\"Un visor geogr\u00E1fico para explorar la estructura demogr\u00E1fica de %{place}\",\"demographic_observatory\":\"Observatorio demogr\u00E1fico\",\"economia\":\"Econom\u00EDa\",\"empleo\":\"Empleo\",\"poblacion\":\"Poblaci\u00F3n\"}}},\"gobierto_people\":{\"departments\":{\"index\":{\"description\":\"Cualquier organizaci\u00F3n que se re\u00FAne con un alto cargo debe registrarse como grupo de inter\u00E9s, y se crea un registro de los encuentros. \\\\u003ca href=\\\\\"https://web.gencat.cat/es/tramits/tramits-temes/registre-grups-interes\\\\\"\\\\u003eM\u00E1s informaci\u00F3n sobre la normativa de grupos de inter\u00E9s\\\\u003c/a\\\\u003e. Explore las organizaciones (empresas, fundaciones, asociaciones\u2026) que se re\u00FAnen con cargos de la Generalidad.\",\"events\":\"Reuniones registradas\",\"events_by_department\":\"Reuniones por departamentos\",\"explore_departments\":\"Explore los departamentos y sus altos cargos\",\"explore_people\":\"Consulte las agendas de los altos cargos\",\"people_events\":\"Altos cargos con m\u00E1s reuniones en departamentos\",\"people_with_events\":\"Altos cargos con reuniones registradas\",\"punchcard_title\":\"Reuniones por departamento y mes\"},\"show\":{\"interest_groups_box_subtitle\":\"con reuniones en el periodo\",\"interest_groups_box_title\":\"Grupos de inter\u00E9s\",\"interest_groups_box_title_single\":\"Grupo de inter\u00E9s\",\"interest_groups_rowchart_title\":\"Grupos de inter\u00E9s con m\u00E1s reuniones con este departamento\",\"interest_groups_with_events\":\"Grupos de inter\u00E9s que se han reunido con este departamento\",\"map_title\":\"\u00BFA d\u00F3nde viajan los altos cargos?\",\"meetings_box_subtitle\":\"con grupos de inter\u00E9s\",\"meetings_box_title\":\"Reuniones registradas\",\"meetings_box_title_single\":\"Reuni\u00F3n registrada\",\"people_box_subtitle\":\"con reuniones registradas\",\"people_box_title\":\"Altos cargos de este departamento\",\"people_box_title_single\":\"Alto cargo de este departamento\",\"people_rowchart_title\":\"Altos cargos de este departamento con m\u00E1s reuniones\",\"people_with_events\":\"Altos cargos de este departamento con reuniones registradas\",\"punchcard_title\":\"Reuniones por alto cargo y mes\"}},\"events\":{\"gobierto_people_person_post_published\":\"Actualizaci\u00F3n del blog: %{subject_name}\",\"gobierto_people_person_post_updated\":\"Actualizaci\u00F3n del post: %{subject_name}\",\"gobierto_people_person_published\":\"Creada nueva persona: %{subject_name}\",\"gobierto_people_person_statement_published\":\"Publicada la declaraci\u00F3n: %{subject_name}\",\"gobierto_people_person_statement_updated\":\"Actualizada la declaraci\u00F3n: %{subject_name}\",\"gobierto_people_person_updated\":\"Actualizaci\u00F3n de la informaci\u00F3n personal\"},\"exports\":{\"index\":{\"events\":{\"description\":\"Listado de los eventos (pasados y futuros) con t\u00EDtulo y descripci\u00F3n, asistentes, ubicaci\u00F3n...\",\"title\":\"Agendas\"},\"people\":{\"description\":\"Listado de los cargos, con sus datos de contacto, biograf\u00EDa, titulaciones, etc.\",\"title\":\"Cargos\"},\"posts\":{\"description\":\"\u00DAltimas entradas del conjunto de los blogs\",\"title\":\"Blogs\"},\"statements\":{\"description\":\"Listado de las declaraciones de bienes y actividades y todos sus elementos\",\"title\":\"Declaraciones de bienes y actividades\"}}},\"gifts\":{\"coc\":\"El C\u00F3digo de conducta regula qu\u00E9 obsequios se pueden recibir.\",\"description\":\"Los altos cargos deben abstenerse de aceptar regalos y donaciones de particulares y de entidades p\u00FAblicas o privadas a excepci\u00F3n hecha de las muestras no venales de cortes\u00EDa y objetos conmemorativos, oficiales o protocolarios que le puedan ser entregados por raz\u00F3n de su cargo.\",\"last\":\"\u00DAltimos obsequios\",\"none\":\"No se han registrado obsequios en este periodo\",\"title\":\"Obsequios\"},\"interest_groups\":{\"index\":{\"description\":\"Cualquier organizaci\u00F3n que se re\u00FAne con un alto cargo debe registrarse como grupo de inter\u00E9s, y se crea un registro de los encuentros. \\\\u003ca href=\\\\\"https://web.gencat.cat/es/tramits/tramits-temes/registre-grups-interes\\\\\"\\\\u003eM\u00E1s informaci\u00F3n sobre la normativa de grupos de inter\u00E9s\\\\u003c/a\\\\u003e. Explore las organizaciones (empresas, fundaciones, asociaciones\u2026) que se re\u00FAnen con cargos de la Generalidad.\",\"interest_groups\":\"Grupos de inter\u00E9s inscritos\",\"no_data\":\"No hay datos para las fechas seleccionadas\",\"rowchart_title\":\"Grupos de inter\u00E9s con m\u00E1s reuniones\",\"title\":\"Grupos de inter\u00E9s\"},\"show\":{\"event\":\"Reuni\u00F3n registradas\",\"events\":\"Reuniones registradas\",\"events_by_department\":\"Con qu\u00E9 departamentos se re\u00FAne este grupo\",\"events_by_person\":\"Altos cargos con los que se ha reunido este grupo\",\"explore_departments\":\"Explore los departamentos y sus altos cargos\",\"explore_people\":\"Consulte las agendas de los altos cargos\",\"people_with_events\":\"El n\u00FAmero de altos cargos con los que se ha reunido este grupo\",\"punchcard_title\":\"Reuniones por alto cargo y mes\",\"status\":\"Situaci\u00F3n de inscripci\u00F3n en el registro de grupos de inter\u00E9s: %{status}\"}},\"invitations\":{\"coc\":\"El C\u00F3digo de conducta regula qu\u00E9 invitaciones se pueden aceptar.\",\"description\":\"Los altos cargos deben aceptar s\u00F3lo el pago de viajes, desplazamientos y alojamientos por parte de otras administraciones p\u00FAblicas o de entidades p\u00FAblicas dependientes de \u00E9stas, universidades o entidades sin \u00E1nimo de lucro, cuando tenga que asistir invitado oficialmente por raz\u00F3n del cargo a una actividad relacionada con sus responsabilidades.\",\"last\":\"\u00DAltimas invitaciones\",\"none\":\"No se han registrado invitaciones en este periodo\",\"title\":\"Invitaciones\"},\"layouts\":{\"application\":{\"title\":\"Altos cargos y Agendas\"},\"departments\":{\"no_departments_within_dates\":\"Altos cargos y agendas\"},\"menu_subsections\":{\"agendas\":\"Agendas\",\"blogs\":\"Blogs\",\"departments\":\"Departamentos\",\"gifts\":\"Obsequios\",\"interest_groups\":\"Grupos de inter\u00E9s\",\"invitations\":\"Invitaciones\",\"people\":\"Cargos\",\"statements\":\"Declaraciones\",\"trips\":\"Viajes\"}},\"people\":{\"contact_methods\":{\"send_email\":\"Env\u00EDa un correo-e\"},\"gifts\":{\"index\":{\"gifts\":\"Obsequios\",\"no_gifts\":\"No hay obsequios en las fechas seleccionadas\",\"title\":\"Obsequios recibidos por %{person_name}\"}},\"google_calendar\":{\"authorization\":{\"new\":{\"success\":\"Configuraci\u00F3n guardada correctamente. Un \u00FAltimo paso, selecciona qu\u00E9 calendarios quieres publicar autom\u00E1ticamente en tu agenda.\"}},\"calendars\":{\"edit\":{\"explain\":\"Selecciona qu\u00E9 calendarios quieres publicar autom\u00E1ticamente en tu agenda\",\"save\":\"Guardar\",\"title\":\"Integraci\u00F3n con Google Calendar\"},\"update\":{\"success\":\"Calendarios guardados correctamente.\"}}},\"index\":{\"department_officials\":\"Altos cargos en %{department_name}\",\"no_people_within_range\":\"No hay ning\u00FAn alto cargo para este rango de fechas\",\"subscribable_box\":{\"title\":\"Reciba alertas en su correo-e\"},\"title\":\"Organigrama de %{site_name}\"},\"invitations\":{\"index\":{\"invitations\":\"Invitaciones\",\"no_invitations\":\"No hay invitaciones en las fechas seleccionadas\",\"title\":\"Invitaciones recibidas por %{person_name}\"}},\"latest_activity\":{\"no_activity\":\"Este perfil a\u00FAn no ha registrado ninguna actividad.\",\"title\":\"\u00DAltima actividad\"},\"navigation\":{\"agenda\":\"Agenda\",\"bio\":\"Biograf\u00EDa y CV\",\"blog\":\"Blog\",\"gift_received\":\"obsequio recibido\",\"gifts\":\"Obsequios y regalos\",\"gifts_received\":\"obsequios recibidos\",\"interest_group\":\"grupo de inter\u00E9s\",\"interest_groups\":\"grupos de inter\u00E9s\",\"invitation\":\"invitaci\u00F3n\",\"invitations\":\"invitaciones\",\"meeting_with\":\"reuni\u00F3n con\",\"meetings_with\":\"reuniones con\",\"statements\":\"Bienes y actividades\",\"trip_made\":\"viaje realizado\",\"trips\":\"Viajes\",\"trips_made\":\"viajes realizados\"},\"people_filter\":{\"organigram\":\"Organigrama de %{name}\",\"political_groups\":\"Grupos pol\u00EDticos de %{name}\"},\"person\":{\"picture\":\"Foto de %{name}\"},\"person_bio\":{\"show\":{\"download\":\"Descargar CV\",\"subtitle\":\"Biograf\u00EDa y CV\",\"title\":\"Perfil de %{person_name}\"}},\"person_events\":{\"index\":{\"agenda\":\"Agenda\",\"no_events\":\"No hay reuniones en las fechas seleccionadas\",\"past_events\":\"Eventos pasados\",\"title\":\"Agenda de %{person_name}\",\"upcoming_events\":\"Pr\u00F3ximos eventos\"},\"show\":{\"event_data\":{\"event_attachments\":\"Documentos\",\"event_attendees\":\"Asistentes\",\"event_locations\":\"Lugar\"},\"title\":\"Agenda de %{person_name}\"}},\"person_messages\":{\"create\":{\"error\":\"No se ha podido enviar el mensaje\",\"success\":\"Mensaje enviado correctamente\"},\"new\":{\"placeholders\":{\"body\":\"Escribe un mensaje\",\"email\":\"Tu correo-e\",\"name\":\"Tu nombre\"},\"submit\":\"Enviar\",\"title\":\"Env\u00EDa un mensaje a %{name}\"}},\"person_post_tags\":{\"show\":{\"filtering_by_tag\":\"Filtrando por \\\\\"%{tag}\\\\\"\",\"go_back\":\"Volver al blog\"}},\"person_posts\":{\"index\":{\"no_posts\":\"Todav\u00EDa no se ha publicado ning\u00FAn post.\",\"title\":\"El blog de %{person_name}, %{person_charge}\"},\"show\":{\"title\":\"El blog de %{person_name}, %{person_charge}\"}},\"person_statements\":{\"index\":{\"no_statements\":\"Todav\u00EDa no se ha publicado ninguna declaraci\u00F3n para esta persona.\",\"title\":\"Bienes y actividades de %{person_name}\"},\"show\":{\"download\":\"Descargar declaraci\u00F3n (%{file_size})\",\"title\":\"Bienes y actividades de %{person_name}\",\"view_previous\":\"Ver anteriores\"}},\"show\":{\"events_section_title\":\"\u00DAltimas reuniones\",\"gifts_section_title\":\"\u00DAltimos obsequios\",\"invitations_section_title\":\"\u00DAltimas invitaciones\",\"no_data\":\"No hay datos en las fechas seleccionadas\",\"party\":{\"government\":\"Equipo de gobierno\",\"opposition\":\"Oposici\u00F3n\"},\"trips_section_title\":\"\u00DAltimos viajes\"},\"subscription_button\":{\"cancel\":\"Cancelar\",\"follow\":\"Seguir\"},\"trips\":{\"index\":{\"no_trips\":\"No hay viajes en las fechas seleccionadas\",\"title\":\"Viajes realizados por %{person_name}\",\"trips\":\"Viajes\"},\"trip\":{\"accomodation_expenses\":\"Hoteles y alojamiento\",\"by\":\"por\",\"company\":\"Comitiva\",\"expenses\":\"Gastos\",\"food_expenses\":\"Dietas y manutenci\u00F3n\",\"in\":\"en\",\"meeting_name\":{\"one\":\"reuni\u00F3n\",\"other\":\"reuniones\"},\"other_expenses\":\"Otros gastos\",\"person_name\":{\"one\":\"persona\",\"other\":\"personas\"},\"total_expenses\":\"Gastos totales\",\"transport_expenses\":\"Transporte\"}},\"upcoming_events\":{\"no_upcoming_events\":\"No hay eventos pr\u00F3ximos en esta agenda.\",\"title\":\"Agenda\",\"view_all\":\"Ver todos\"}},\"people_filter\":{\"all\":\"Todos\",\"categories\":{\"executive\":\"Directivos\"},\"parties\":{\"government\":\"Equipo de Gobierno\",\"opposition\":\"Oposici\u00F3n\"},\"political_groups\":{\"title\":\"Grupos pol\u00EDticos\"}},\"person_events\":{\"index\":{\"agenda_switcher\":{\"subtitle\":\"Filtrar por miembros de la comunidad\",\"title\":\"Consulte la agenda de...\"},\"displaying_events_of\":\"Mostrando eventos del %{date}\",\"go_back\":\"Volver\",\"no_events\":\"No hay eventos futuros ni pasados.\",\"no_past_events\":\"No hay eventos pasados.\",\"no_upcoming_events\":\"No hay eventos futuros. \u00C9chele un vistazo a los pasados.\",\"past_events\":\"Eventos pasados\",\"subscribable_box\":{\"title\":\"Reciba un resumen de las agendas de sus representantes\"},\"title\":\"Agendas de los miembros de %{site_name}\",\"upcoming_events\":\"Agenda\"},\"person_events_filter\":{\"agenda\":\"Agenda de los miembros del %{name}\"}},\"person_gifts\":{\"index\":{\"error\":\"No hemos encontrado la p\u00E1gina que busca\"}},\"person_mailer\":{\"new_message\":{\"hi\":\"Hola\",\"new_message\":\"Has recibido un nuevo mensaje de %{name} (%{reply_to})\",\"subject\":\"Has recibido un nuevo mensaje desde %{name}\"}},\"person_post_tags\":{\"show\":{\"filtering_by_tag\":\"Filtrando por \\\\\"%{tag}\\\\\"\",\"go_back\":\"Volver\"}},\"person_posts\":{\"index\":{\"subscribable_box\":{\"title\":\"Reciba alertas en su correo-e\"},\"switcher\":{\"subtitle\":\"Filtrar por miembros de la comunidad\",\"title\":\"Consulte los blogs de...\"},\"title\":\"Blogs\"},\"person_post_excerpt\":{\"continue\":\"Seguir leyendo\"}},\"person_statements\":{\"index\":{\"subscribable_box\":{\"title\":\"Reciba alertas en su correo-e\"},\"switcher\":{\"subtitle\":\"Filtrar por miembros de la comunidad\",\"title\":\"Consulte las declaraciones de...\"},\"title\":\"Declaraciones\"}},\"person_trips\":{\"index\":{\"error\":\"No hemos encontrado la p\u00E1gina que busca\"}},\"shared\":{\"app_breadcrumb_title\":\"Visor de la actividad directiva\",\"app_title\":\"Actividad directiva p\u00FAblica derivada del C\u00F3digo de conducta\",\"check_it_out\":\"Consultad el texto del C\u00F3digo de conducta\",\"datepicker\":{\"1m\":\"\u00DAltimo mes\",\"1y\":\"\u00DAltimo a\u00F1o\",\"3m\":\"\u00DAltimos tres meses\",\"all\":\"Todo\",\"range\":\"Rango personalizado\",\"today\":\"Hoy\"},\"datepicker_fixed\":\"Datos correspondientes al periodo\",\"destination\":\"destino\",\"destinations\":\"destinos\",\"displacement\":\"desplazamiento\",\"displacements\":\"desplazamientos\",\"from\":\"de\",\"locales\":{\"locale\":\"Idioma\",\"page_locale\":\"Idioma de la p\u00E1gina\",\"select_locale\":\"Selecciona idioma\"},\"meetings_punchcard\":{\"tooltip\":\"reuniones\",\"tooltip_single\":\"reuni\u00F3n\"},\"meetings_rowchart\":{\"tooltip\":\"reuniones\",\"tooltip_single\":\"reuni\u00F3n\"},\"noresults\":\"Sin resultados\",\"open_data_footer\":{\"gifts\":\"Obsequios\",\"invitations\":\"Invitaciones\",\"meetings\":\"Reuniones\",\"title\":\"Acceder a los datos en el Portal de datos abiertos\",\"trips\":\"Viajes\"},\"table_item\":{\"view_details\":\"Ver detalles\"},\"to\":\"para\",\"view_all\":\"Ver todos\",\"view_all_f\":\"Ver todas\",\"view_charges\":\"Ver todos los cargos\",\"view_details\":\"Ver detalles\",\"view_gifts\":\"Ver todos los obsequios en el Portal de datos abiertos\",\"view_invitations\":\"Ver todas las invitaciones en el Portal de datos abiertos\",\"view_officials\":\"Ver altos cargos\"},\"welcome\":{\"index\":{\"departments\":\"Departamentos\",\"departments_extra\":\"se muestran los departamentos que existen o han existido en funci\u00F3n del periodo seleccionado\",\"departments_rowchart_title\":\"Departamentos con m\u00E1s reuniones\",\"description_1\":\"El visor muestra las reuniones de los altos cargos de la administraci\u00F3n de la Generalitat con los grupos de inter\u00E9s en el periodo temporal que seleccione. Tambi\u00E9n encontrar\u00E1 los regalos e invitaciones permitidos por el C\u00F3digo de conducta, que obliga a los altos cargos a hacer p\u00FAblica esta informaci\u00F3n. Asimismo, el visor permite consultar los viajes al extranjero del presidente, consejeros, asesores y altos cargos en el ejercicio de sus funciones.\",\"description_2_html\":\"Respecto de la informaci\u00F3n de los altos cargos, se muestran los cargos que ocupan o han ocupado en el periodo temporal seleccionado.\",\"events_summary\":{\"no_events\":\"No hay eventos\",\"no_upcoming_events\":\"No hay eventos futuros. \u00C9chele un vistazo a los pasados.\",\"past_events\":\"Eventos pasados\",\"upcoming_events\":\"Pr\u00F3ximos eventos\",\"view_all\":\"Ver todos\"},\"gifts\":\"Obsequios y regalos\",\"interest_groups_box_subtitle\":\"con reuniones en el periodo\",\"interest_groups_box_title\":\"Grupos de inter\u00E9s\",\"interest_groups_box_title_single\":\"Grupo de inter\u00E9s\",\"interest_groups_rowchart_title\":\"Grupos de inter\u00E9s con m\u00E1s reuniones\",\"map_title\":\"\u00BFA d\u00F3nde viajan los altos cargos?\",\"meetings_box_subtitle\":\"con grupos de inter\u00E9s\",\"meetings_box_title\":\"Reuniones registradas\",\"meetings_box_title_single\":\"Reuni\u00F3n registrada\",\"people_box_subtitle\":\"con actividad registrada\",\"people_box_title\":\"Altos cargos\",\"people_box_title_single\":\"Alto cargo\",\"people_rowchart_title\":\"Altos cargos con m\u00E1s reuniones\",\"people_summary\":{\"no_people\":\"No hay personas\",\"title\":\"Organigrama de %{site_name}\",\"view_all\":\"Ver todos\"},\"posts_summary\":{\"title\":\"Blogs\",\"view_all\":\"Ver todos\"},\"punchcard_title\":\"Reuniones por alto cargo y mes\",\"search\":\"Buscar\",\"search_placeholder\":\"Busca un cargo\",\"statements\":\"Declaraciones de bienes y actividades\",\"subscribable_box\":{\"title\":\"Reciba un resumen semanal de las agendas de sus representantes\"},\"title\":\"Agendas\",\"trips\":\"Viajes y desplazamientos\"}}},\"gobierto_plans\":{\"custom_fields_plugins\":{\"budgets\":{\"detail_text\":\"ver detalle en Presupuestos\",\"title\":\"Presupuesto\"}},\"events\":{\"gobierto_plans_plan_created\":\"Plan creado\",\"gobierto_plans_plan_data_csv_imported\":\"Datos de plan importados desde fichero CSV\",\"gobierto_plans_plan_type_created\":\"Tipo de plan creado\",\"gobierto_plans_plan_type_updated\":\"Tipo de plan actualizado\",\"gobierto_plans_plan_updated\":\"Plan actualizado\",\"gobierto_plans_progresses_updated\":\"Progresos de proyectos actualizados\",\"gobierto_plans_project_created\":\"Proyecto creado\",\"gobierto_plans_project_destroyed\":\"Proyecto eliminado del plan\",\"gobierto_plans_project_updated\":\"Proyecto actualizado\"},\"layouts\":{\"application\":{\"plans\":\"Planes\"}},\"plan_types\":{\"sdg\":{\"header\":{\"sdgs_description\":\"Los Objetivos de Desarrollo Sostenible son un conjunto de objetivos mundiales relacionados con los desaf\u00EDos ambientales, pol\u00EDticos y econ\u00F3micos con que se enfrenta nuestro mundo. Aqu\u00ED puedes ver como el Plan de Actuaci\u00F3n Municipal conecta con los ODS.\",\"sdgs_title\":\"Objetivos de Desarrollo Sostenible\"},\"projects\":{\"sdg_projects_empty\":\"No hay %{projects_term} del plan relacionados con este ODS\",\"sdg_projects_title\":\"%{projects_term} del plan relacionados con este ODS\"}},\"show\":{\"category\":\"Categor\u00EDa\",\"customize_columns\":\"Personalizar columnas\",\"dashboards\":\"Dashboards\",\"desc\":\"Descripci\u00F3n\",\"ends\":\"Fin\",\"global_execution\":\"Estado de ejecuci\u00F3n global\",\"latest_update_html\":\"\\\\u003cstrong\\\\u003e\u00DAltima actualizaci\u00F3n:\\\\u003c/strong\\\\u003e %{date}\",\"loading\":\"Cargando...\",\"percent_out_of_total\":\"% sobre total\",\"plan\":\"Plan\",\"progress\":\"Progreso\",\"read_less\":\"Leer menos\",\"read_more\":\"Leer m\u00E1s\",\"starts\":\"Inicio\",\"status\":\"Estado\",\"view_by\":\"Ver por\"}}},\"gobierto_visualizations\":{\"layouts\":{\"application\":{\"gobierto_visualizations\":{\"contracts\":\"Contratos y licitaciones\",\"costs\":\"Costes\",\"debts\":\"Deuda\",\"odss\":\"ODS\",\"subsidies\":\"Subvenciones\"}}},\"shared\":{\"download_data\":\"Descarga los datos completos en formatos reutilizables\",\"loading\":\"Cargando datos...\"},\"visualizations\":{\"categories\":{\"agriculture\":\"Servicios agr\u00EDcolas y forestales\",\"architecture\":\"Arquitectura e ingenier\u00EDa\",\"audiovisual\":\"Audiovisual\",\"catering\":\"Hosteler\u00EDa y restauraci\u00F3n\",\"construction\":\"Construcci\u00F3n y mantenimiento\",\"culture\":\"Cultura y deporte\",\"education\":\"Ense\u00F1anza y formaci\u00F3n\",\"electrical\":\"Equipos el\u00E9ctricos y de iluminaci\u00F3n\",\"energy\":\"Energ\u00EDa\",\"environment\":\"Medio ambiente\",\"finance\":\"Servicios financieros y seguros\",\"furniture\":\"Mobiliario\",\"health\":\"Salud\",\"industry\":\"Industria y maquinaria\",\"it\":\"Tecnolog\u00EDa de la informaci\u00F3n\",\"legal\":\"Jur\u00EDdico, contabilidad, mercadotecnia...\",\"maintenance\":\"Reparaci\u00F3n y mantenimiento\",\"other\":\"Otros\",\"print\":\"Impresi\u00F3n y material de oficina\",\"public_services\":\"Servicios p\u00FAblicos\",\"real_estate\":\"Inmobiliario\",\"security\":\"Seguridad\",\"social_services\":\"Servicios sociales\",\"software\":\"Consultor\u00EDa y desarrollo de software, equipos y licencias\",\"telecom\":\"Telecomunicaciones y correos\",\"textile\":\"Textil\",\"transportation\":\"Transporte\"},\"contract_statuses\":{\"abandoned\":\"Desistimiento\",\"awarded\":\"Adjudicado\",\"finally_awarded\":\"Finalmente adjudicado\",\"finally_void\":\"Desierto\",\"formalized\":\"Formalizado\",\"highest_rated\":\"Mejor valorado\",\"provisionally_awarded\":\"Provisionalmente adjudicado\",\"provisionally_void\":\"Provisionalmente desierto\",\"revoked\":\"Revocado\",\"void\":\"Desierto\"},\"contract_types\":{\"construction\":\"Obras\",\"other\":\"Otros\",\"patrimonial\":\"Patrimonial\",\"private_contract\":\"Privado\",\"public_private_collaboration\":\"Colaboraci\u00F3n entre el sector p\u00FAblico y sector privado\",\"public_services_management\":\"Gesti\u00F3n de Servicios P\u00FAblicos\",\"public_works\":\"Concesi\u00F3n de Obras p\u00FAblicas\",\"services\":\"Servicios\",\"special_administrative\":\"Administrativo especial\",\"supplies\":\"Suministros\"},\"contracts\":{\"amount_by_type_of_process\":\"Importe por tipo de procedimiento\",\"amount_distribution\":\"Distribuci\u00F3n por importes\",\"assignee\":\"Adjudicatario\",\"categories\":\"Categor\u00EDas\",\"contract\":\"Contrato\",\"contract_amount\":\"Imp. adjudicaci\u00F3n\",\"contract_type\":\"Tipo de contrato\",\"contractor\":\"Contrato\",\"contracts\":\"Contratos\",\"contracts_assigned_to\":\"Contratos adjudicados a\",\"contracts_show\":{\"assignee_description\":\"Empresa que ha ganado el contrato (Adjudicatario)\",\"assignees_description\":\"Empresas que han ganado el contrato (Adjudicatarios)\",\"awarding_entity\":\"Entidad adjudicadora\",\"batch\":\"Lote\",\"bid_description\":\"Presupuesto base de licitaci\u00F3n sin impuestos\",\"bidders_description\":\"N\u00FAmero de empresas que se han presentado al proceso (Licitadores)\",\"contract_amount\":\"Importe de adjudicaci\u00F3n\",\"entity\":\"Entidad\",\"estimated_value\":\"Valor estimado\",\"external_source\":\"Fuente\",\"formalization\":\"Formalizaci\u00F3n\",\"process\":\"Procedimiento\",\"question_description\":\"\u00BFQu\u00E9 % del presupuesto supone este contrato?\",\"tender\":\"Licitaci\u00F3n\",\"type\":\"Tipo\"},\"date\":\"Fecha\",\"dates\":\"Fechas\",\"description\":\"Visualizaci\u00F3n y an\u00E1lisis de los contratos adjudicados y las licitaciones del %{entity_name}\",\"entities\":\"Entidades\",\"final_amount_no_taxes\":\"Importe\",\"formalization_date\":\"Fecha de formalizaci\u00F3n\",\"fromto\":\"Desde A N\u00BA. Contr.\",\"main_assignees\":\"Principales adjudicatarios\",\"more\":\"M\u00E1s de\",\"nav\":{\"contracts\":\"Contratos\",\"summary\":\"Resumen\",\"tenders\":\"Licitaciones\"},\"process_type\":\"Tipo de procedimiento\",\"search_placeholder\":\"Busca por adjudicatario o por t\u00EDtulo del contrato\",\"status\":\"Estado\",\"submission_date\":\"Fecha\",\"summary\":{\"contracts\":\"Contratos adjudicados\",\"contracts_for\":\"contratos por importe de\",\"mean_amount\":\"Importe medio\",\"median_amount\":\"Importe mediano\",\"tenders\":\"Licitaciones\",\"tenders_for\":\"licitaciones por importe de\",\"tip_1\":\"El %{strong1} de los contratos son menores de %{strong2}\",\"tip_2\":\"El mayor contrato supone un %{strong} de todo el gasto en contratos\",\"tip_3\":\"El %{strong} de contratos concentran el 50% de todo el gasto\"},\"tender_amount\":\"Imp. licitaci\u00F3n\",\"tender_date\":\"Fecha de licitaci\u00F3n\",\"title\":\"Contratos y licitaciones\"},\"costs\":{\"activities\":\"Actividades\",\"cost_direct\":\"Coste directo\",\"cost_indirect\":\"Coste indirecto\",\"cost_inhabitant\":\"Coste/habitante\",\"cost_per_inhabitant\":\"Coste por habitante\",\"coverage\":\"Cobertura\",\"description\":\"El %{entity_name} presta servicios a sus ciudadanos a partir de sus competencias. Esta prestaci\u00F3n de servicios supone un coste que se cubre con los ingresos que dispone el Ayuntamiento, que son los derivados del propio servicio a prestar o bien de recursos generales de los impuestos o subvenciones recibidas.\",\"description_2\":\"En este apartado se muestran los datos sobre los costes de los servicios y los ingresos necesarios para prestarlos.\",\"description_3\":\"El punto de partida es el presupuesto municipal, pero con este an\u00E1lisis se ampl\u00EDa y se concreta el coste real de un servicio ya que podemos encontrar relacionado el coste indirecto (de apoyo) necesario para la prestaci\u00F3n de un servicio.\",\"detail\":\"Detalle\",\"distribution\":\"Distribuci\u00F3n de costes por \u00E1rea\",\"home\":\"Inicio\",\"income\":\"Ingresos\",\"inhabitants\":\"Habitantes\",\"item\":{\"competence\":\"Competencia\",\"description\":\"Descripci\u00F3n\",\"equipments\":\"Equipamientos\",\"external_services\":\"Servicios externos\",\"goods_and_services\":\"Bienes y servicios\",\"income_cost\":\"Ingresos - Costes\",\"legal_framework\":\"Marco legal\",\"observation\":\"Observaciones\",\"personal_cost\":\"Coste personal\",\"public_tax\":\"Tasa o precios p\u00FAblicos\",\"subsidies\":\"Subvenciones\",\"total\":\"Total\",\"transference\":\"Transferencias\",\"types\":\"Tipos\"},\"per_inhabitant\":\"por habitante\",\"see_all\":\"Ver todos\",\"title\":\"Costes\",\"tooltips\":{\"cost_direct\":\"Recursos necesarios para la prestaci\u00F3n de un servicio o actividad finalista y que se relacionan directamente.\",\"cost_indirect\":\"Recursos para la prestaci\u00F3n de servicios no finalistas y que son de apoyo necesario para la realizaci\u00F3n de servicios y actividades finalistas.\",\"cost_per_habitant\":\"Coste total dividido por el n\u00FAmero de habitantes.\",\"cost_total\":\"Suma del coste directo y coste indirecto.\",\"coverage\":\"Grado de cobertura de los ingresos directamente relacionados con el coste total de la actividad o servicio.\",\"income\":\"Ingresos directamente relacionados con la prestaci\u00F3n del servicio, ya sean derivados de la aplicaci\u00F3n de una tasa o precio p\u00FAblico o bien de una subvenci\u00F3n.\"},\"tooltips_items\":{\"cost_indirect\":\"Parte proporcional del coste de las actividades no finalistas (recursos humanos, servicios econ\u00F3micos).\",\"coverage\":\"Medida (en%) en el que los ingresos directamente relacionados con la actividad son suficientes para cubrir su coste.\",\"equipments\":\"Coste proporcional del uso de la Infrastucturas necesaria para la prestaci\u00F3n de la actividad o servicio (consumos y mantenimientos de los edificios, veh\u00EDculos) en funci\u00F3n de su grado de utilizaci\u00F3n.\",\"externalServices\":\"Servicios diversos adquiridos por el Ayuntamiento y prestaciones de personas jur\u00EDdicas o f\u00EDsicas no integradas en la plantilla.\",\"goodsServices\":\"Valoraci\u00F3n monetaria del consumo de material fungible necesario y no almacenable necesario para la prestaci\u00F3n de la actividad o servicio (suministro, material de oficina)\",\"income_cost\":\"Diferencia entre conjunto de ingresos directamente relacionados con la actividad y el coste necesario para su prestaci\u00F3n. Un saldo negativo indica la insuficiencia de recursos espec\u00EDficos y la necesidad de financiaci\u00F3n con recursos generales del Ayuntamiento.\",\"staff_cost\":\"C\u00F3mputo anual de la parte de los sueldos y salarios de las trabajadoras y trabajadores proporcional a su dedicaci\u00F3n a la actividad.\",\"subsidies\":\"Ingresos sin contraprestaci\u00F3n directa por parte del beneficiario, destinados a una actividad o un proyecto espec\u00EDfico.\",\"taxes\":\"Contraprestaciones econ\u00F3micas recibidas por la prestaci\u00F3n de un servicio o por la utilizaci\u00F3n privativa o aprovechamiento especial del dominio p\u00FAblico.\",\"transferences\":\"Aportaciones de recursos financieros por parte del Ayuntamiento en concepto de subvenci\u00F3n previamente concedida.\"},\"total\":\"Total\",\"total_cost\":\"Coste total\"},\"debts\":{\"breakdown_debt\":\"Desglose de la deuda\",\"creditor\":\"Por acreedor\",\"date_debt\":\"Datos de deuda a 31 de diciembre de 2025.\",\"debtor\":\"Por deudor\",\"description\":\"La deuda financiera y a largo plazo del Ayuntamiento englova la deuda de todos sus entes dependientes (Sociedades Mercantiles, EPE\u2019s, Fundacio\u00F3ns, Consorcios).\",\"evolution_debt\":\"Evoluci\u00F3n de la deuda\",\"millions\":\"La unidad de las cifras de este gr\u00E1fico es millones de euros.\",\"title\":\"Deuda\",\"total_debt\":\"Deuda total\"},\"odss\":{\"amount\":\"Importe\",\"assigned\":\"Alineado\",\"description_html\":\"\\\\u003cp\\\\u003eDesde el a\u00F1o 2015, la ONU ha aprobado la Agenda 2030, incorporando los 17 Objetivos de Desarrollo Sostenible (ODS), y establecido una visi\u00F3n transformadora hacia la sostenibilidad econ\u00F3mica, social y ambiental, este Ayuntamiento ha colaborado en abrir un nuevo camino para mejorar la vida de todas y todos, sin dejar a nadie atr\u00E1s.\\\\u003c/p\\\\u003e \\\\u003cp\\\\u003eEs por ello, que despu\u00E9s de presentar el Plan Estrat\u00E9gico Municipal 2023-2027 alineado con los ODS, se compite la alineaci\u00F3n del presupuesto municipal con la Agenda 2030.\\\\u003c/p\\\\u003e \\\\u003cp\\\\u003eEl visor del presupuesto permite una mejor evaluaci\u00F3n de la adecuaci\u00F3n de los recursos utilizados y las prioridades pol\u00EDticas, y contribuye a dirigir los esfuerzos hacia las \u00E1reas donde se necesita un mayor enfoque.\\\\u003c/p\\\\u003e \\\\u003cp\\\\u003eEsta herramienta se plantea con el objetivo de ofrecer a la ciudadan\u00EDa una visi\u00F3n integral del grado de alineamiento de las gastos municipales de este a\u00F1o con la consecuci\u00F3n de los ODS.\\\\u003c/p\\\\u003e\",\"functional_code\":\"C\u00F3digo programa\",\"label_title_budgets_ods\":\"Distribuci\u00F3n de partidas por ODS\",\"label_title_ods\":\"Distribuci\u00F3n de gastos por Objetivos de Desarrollo Sostenible\",\"name\":\"Nombre\",\"ods_distribution\":\"Distribuci\u00F3n ODS\",\"title\":\"Presupuesto vigente alineado con los Objetivos de Desarrollo Sostenible (ODS)\",\"unassigned\":\"Sin alinear\",\"updated_date\":\"Datos actualizados el 18 de marzo de 2025\"},\"process_types\":{\"based_on_agreement\":\"Basat en Acord Marc\",\"competitive_dialogue\":\"Di\u00E1logo competitivo\",\"dynamic_acquisition\":\"Basado en sistema din\u00E1mico de adquisici\u00F3n\",\"innovation\":\"Asociaci\u00F3n para la innovaci\u00F3n\",\"innovation_derived\":\"Derivado de asociaci\u00F3n para la innovaci\u00F3n\",\"internal_rules\":\"Normas Internas\",\"minor_contract\":\"Contrato menor\",\"negotiated\":\"Licitaci\u00F3n con negociaci\u00F3n\",\"negotiated_with_publicity\":\"Negociado con publicidad\",\"negotiated_without_publicity\":\"Negociado sin publicidad\",\"open\":\"Abierto\",\"open_simplified\":\"Abierto simplificado\",\"others\":\"Otros\",\"project_competition\":\"Concurso de proyectos\",\"restricted\":\"Restringido\"},\"subsidies\":{\"amount\":\"Importe\",\"amount_distribution\":\"Distribuci\u00F3n por importes\",\"beneficiary\":\"Beneficiario\",\"call\":\"Convocatoria\",\"category\":\"Categor\u00EDa\",\"date\":\"Fecha\",\"dates\":\"Fechas\",\"description\":\"Visualizaci\u00F3n y an\u00E1lisis de las subvenciones concedidas por %{entity_name}\",\"details\":\"De acuerdo con lo previsto en el art\u00EDculo 7.8 del Real Decreto 130/2019, la informaci\u00F3n sobre concesiones permanecer\u00E1 publicada durante los cuatro a\u00F1os naturales siguientes al a\u00F1o en que se concedi\u00F3 la subvenci\u00F3n en el caso de personas jur\u00EDdicas, y en el caso de personas f\u00EDsicas la publicidad se reduce al a\u00F1o de concesi\u00F3n y al a\u00F1o siguiente.\",\"fromto\":\"Desde A N\u00BA. Subv.\",\"main_beneficiaries\":\"Principales beneficiarios\",\"more\":\"M\u00E1s de\",\"nav\":{\"subsidies\":\"Subvenciones\",\"summary\":\"Resumen\"},\"person\":\"Persona individual\",\"subsidies\":\"Subvenciones\",\"subsidies_amount\":\"Imp. Subvenci\u00F3n\",\"subsidies_total\":\"Total Subvenciones\",\"summary\":{\"collective_subsidies_for\":\"a colectivos por importe de\",\"individual_subsidies_for\":\"a particulares por importe de\",\"mean_amount\":\"Importe medio\",\"median_amount\":\"Importe mediano\",\"subsidies\":\"Subvenciones\",\"subsidies_for\":\"subvenciones por importe de\",\"tip_1\":\"El %{strong1} de las subvenciones son menores de %{strong2}\",\"tip_2\":\"La mayor subvenci\u00F3n supone un %{strong} de todo el gasto en subvenciones\",\"tip_3\":\"El %{strong} de subvenciones concentran el 50% de todo el gasto\"},\"title\":\"Subvenciones\"},\"tender_statuses\":{\"awarded\":\"Adjudicada\",\"cancelled\":\"Desistida\",\"evaluation\":\"Evaluaci\u00F3n\",\"modified\":\"Anulada\",\"partially_awarded\":\"Parcialmente adjudicada\",\"partially_resolved\":\"Parcialmente resuelta\",\"prior_announcement\":\"Anuncio previo\",\"prior_evaluation\":\"Evaluaci\u00F3n previa\",\"provisionally_resolved\":\"Adjudicaci\u00F3n provisional\",\"published\":\"Publicada\",\"resolved\":\"Resuelta\"},\"visualizations\":{\"title_beeswarm\":\"Contratos por tipo, volumen, tama\u00F1o y fecha\",\"tooltip_beeswarm\":\"Importe de adjudicaci\u00F3n\",\"tooltip_treemap\":\"Total contratos\"}}},\"grammatical_particles\":{\"from\":\"de\",\"of\":\"de\",\"of_the\":{\"f\":\"de la\",\"m\":\"del\",\"n\":\"del\"},\"our\":{\"f\":\"nuestra\",\"m\":\"nuestro\",\"n\":\"nuestro\"},\"the\":{\"f\":\"la\",\"m\":\"el\",\"n\":\"el\"},\"to\":\"a\",\"your\":{\"f\":\"tu\",\"m\":\"tu\",\"n\":\"tu\"}},\"helpers\":{\"page_entries_info\":{\"more_pages\":{\"display_entries\":\"Mostrando %{entry_name} \\\\u003cb\\\\u003e%{first}\\\\u0026nbsp;-\\\\u0026nbsp;%{last}\\\\u003c/b\\\\u003e de \\\\u003cb\\\\u003e%{total}\\\\u003c/b\\\\u003e en total\"},\"one_page\":{\"display_entries\":{\"one\":\"Mostrando \\\\u003cb\\\\u003e1\\\\u003c/b\\\\u003e %{entry_name}\",\"other\":\"Mostrando \\\\u003cb\\\\u003e%{count}\\\\u003c/b\\\\u003e %{entry_name}\",\"zero\":\"No hay %{entry_name}\"}}},\"select\":{\"prompt\":\"-- selecciona --\"},\"submit\":{\"create\":\"Crear\",\"submit\":\"Guardar\",\"update\":\"Actualizar\"}},\"invisible_captcha\":{\"sentence_for_humans\":\"Si es humano, por favor, ignore este campo.\",\"timestamp_error_message\":\"Perd\u00F3n, eso ha sido muy r\u00E1pido. Por favor, vuelva a enviar el formulario.\"},\"issue\":{\"events\":{\"issue_description_translations_changed\":\"Nuevo tema creado\"}},\"issues\":{\"events\":{\"issues_issue_created\":\"Tema creado\",\"issues_issue_updated\":\"Tema actualizado\"}},\"layouts\":{\"accept_privacy_policy_signup\":\"Al registrarse est\u00E1 aceptando la pol\u00EDtica de privacidad.\",\"application\":{\"disclaimer\":\"Esta web es una demostraci\u00F3n de Gobierto, software de transparencia y participaci\u00F3n.\",\"more_information\":\"M\u00E1s informaci\u00F3n en gobierto.es\",\"search\":\"Busca...\",\"session\":{\"alerts\":\"Sus alertas\",\"login\":\"Haga login o reg\u00EDstrese\",\"notifications\":\"Notificaciones\",\"sign_in\":\"Iniciar sesi\u00F3n\",\"sign_out\":\"Cerrar sesi\u00F3n\",\"title\":\"Tu cuenta\"},\"start\":\"Inicio\"},\"gobierto_budgets\":{\"application\":{\"about_the_data\":\"Sobre los datos\",\"disclaimer\":\"Esta web es una demostraci\u00F3n de Gobierto, software de transparencia y participaci\u00F3n\",\"is_open_source\":\"es software libre creado por\",\"more_information\":\"M\u00E1s informaci\u00F3n en gobierto.es\",\"session\":{\"admin\":\"Administraci\u00F3n\",\"alerts\":\"Tus alertas\",\"notifications\":\"Notificaciones\",\"sign_in\":\"Iniciar sesi\u00F3n\",\"sign_out\":\"Cerrar sesi\u00F3n\",\"title\":\"Tu cuenta\"}}},\"mailcheck\":{\"suggestion_message\":\"\u00BFQuieres decir\"},\"sandbox\":{\"application\":{\"about_the_data\":\"Sobre los datos\",\"disclaimer\":\"Esta web es una demostraci\u00F3n de Gobierto, software de transparencia y participaci\u00F3n\",\"is_open_source\":\"es software libre creado por\",\"more_information\":\"M\u00E1s informaci\u00F3n en gobierto.es\",\"session\":{\"admin\":\"Administraci\u00F3n\",\"alerts\":\"Tus alertas\",\"notifications\":\"Notificaciones\",\"sign_in\":\"Iniciar sesi\u00F3n\",\"sign_out\":\"Cerrar sesi\u00F3n\",\"title\":\"Tu cuenta\"}}},\"search\":{\"budget_line_item_expense\":\"Partida presupuestaria - Gasto\",\"budget_line_item_income\":\"Partida presupuestaria - Ingreso\",\"dataset_item\":\"Datos\",\"drag_drop_instructions\":\"Arrastre y suelte en la parte izquierda para colocar esta p\u00E1gina en el men\u00FA\",\"event_item\":\"Evento\",\"no_results\":\"La b\u00FAsqueda no ha coincidido con ninguna p\u00E1gina. Pruebe algo como usando t\u00E9rminos m\u00E1s generales o verificando la ortograf\u00EDa.\",\"page_item\":\"P\u00E1gina\",\"person_item\":\"Biograf\u00EDa\",\"person_post_item\":\"Post\",\"person_statement_item\":\"Declaraci\u00F3n\",\"plan_project_item\":\"Plan - Actuaci\u00F3n\",\"updated\":\"Actualizado\"}},\"locales\":{\"ca\":\"Catal\u00E1n\",\"ca_short\":\"CA\",\"en\":\"Ingl\u00E9s\",\"en_short\":\"EN\",\"es\":\"Castellano\",\"es_short\":\"ES\"},\"number\":{\"currency\":{\"format\":{\"delimiter\":\".\",\"format\":\"%n %u\",\"precision\":2,\"separator\":\",\",\"significant\":false,\"strip_insignificant_zeros\":false,\"unit\":\"\u20AC\"}},\"format\":{\"delimiter\":\".\",\"precision\":3,\"separator\":\",\",\"significant\":false,\"strip_insignificant_zeros\":false},\"human\":{\"decimal_units\":{\"format\":\"%n %u\",\"units\":{\"billion\":\"mil millones\",\"million\":\"mill\u00F3n\",\"quadrillion\":\"mil billones\",\"thousand\":\"mil\",\"trillion\":\"bill\u00F3n\",\"unit\":\"\"}},\"format\":{\"delimiter\":\"\",\"precision\":1,\"significant\":true,\"strip_insignificant_zeros\":true},\"storage_units\":{\"format\":\"%n %u\",\"units\":{\"byte\":{\"one\":\"Byte\",\"other\":\"Bytes\"},\"gb\":\"GB\",\"kb\":\"KB\",\"mb\":\"MB\",\"tb\":\"TB\"}}},\"percentage\":{\"format\":{\"delimiter\":\"\",\"format\":\"%n%\"}},\"precision\":{\"format\":{\"delimiter\":\"\"}}},\"routes\":{\"bio\":\"biografia\",\"department_people\":\"personas/departamentos/:department_slug\",\"departments\":\"departamentos\",\"events\":\"agendas\",\"executive_category_events\":\"agendas/directivos\",\"executive_category_past_events\":\"agendas/directivos/eventos-pasados\",\"gifts\":\"obsequios-y-regalos\",\"government\":\"gobierno\",\"government_party_events\":\"agendas/gobierno\",\"government_party_past_events\":\"agendas/gobierno/eventos-pasados\",\"interest_groups\":\"grupos-de-interes\",\"invitations\":\"invitaciones\",\"managers\":\"directivos\",\"messages\":\"contacto\",\"opposition\":\"oposicion\",\"opposition_party_events\":\"agendas/oposicion\",\"opposition_party_past_events\":\"agendas/oposicion/eventos-pasados\",\"past_events\":\"agendas/eventos-pasados\",\"people\":\"personas\",\"people_and_agendas\":\"cargos-y-agendas\",\"people_government\":\"personas/gobierno\",\"people_managers\":\"personas/directivos\",\"people_opposition\":\"personas/oposicion\",\"person_events\":\"agendas/:container_slug\",\"person_past_events\":\"agendas/:container_slug/eventos-pasados\",\"person_post_tags\":\"blogs/:person_slug/tags\",\"person_posts\":\"blogs/:person_slug\",\"person_statements\":\"declaraciones/:person_slug\",\"political_groups\":\"personas/grupos-politicos\",\"post_tags\":\"blogs/tags\",\"posts\":\"blogs/posts\",\"statements\":\"declaraciones\",\"trips\":\"viajes-y-desplazamientos\"},\"scopes\":{\"events\":{\"scopes_scope_created\":\"\u00C1mbito creado\",\"scopes_scope_updated\":\"\u00C1mbito actualizado\"}},\"shared\":{\"currently\":\"actualmente\",\"download_open_data\":{\"exports\":\"Descargue los datos en formato reutilizable\"},\"poll_question\":{\"multiple_choice_msg\":\"Puede elegir varias opciones\"},\"polls\":{\"no_unanswered_polls\":\"No hay encuestas pendientes de contestar.\",\"opinion\":\"Opine\"},\"previous\":\"anterior\"},\"sites\":{\"events\":{\"sites_site_created\":\"Sitio creado\",\"sites_site_destroyed\":\"Sitio eliminado\",\"sites_site_modules_updated\":\"M\u00F3dulos del sitio actualizados\",\"sites_site_updated\":\"Sitio actualizado\",\"sites_site_visibility_updated\":\"Sitio publicado\"}},\"support\":{\"array\":{\"last_word_connector\":\" y \",\"two_words_connector\":\" y \",\"words_connector\":\", \"}},\"time\":{\"am\":\"am\",\"formats\":{\"default\":\"%A, %d de %B de %Y %H:%M:%S %z\",\"from_to\":\"Del %{starts} al %{ends}\",\"long\":\"%d de %B de %Y %H:%M\",\"short\":\"%d de %b %H:%M\"},\"pm\":\"pm\"},\"user\":{\"census_verifications\":{\"create\":{\"error\":\"No se ha podido verificar tu identidad. Por favor verifica tus datos y vuelve a intentarlo. Si el problema persiste, ponte en contacto con tu administraci\u00F3n local.\",\"notice\":\"Tu identidad se ha verificado correctamente\"},\"form\":{\"verify\":\"Verificar\"},\"messages\":{\"already_verified\":\"Tu cuenta ya est\u00E1 verificada\",\"comments\":{\"not_verified\":\"La contribuci\u00F3n en la que deseas participar exige que verifiques que est\u00E1s empadronado/a en %{site_name}. Confirma tus datos para continuar (ser\u00E1n verificados contra el padr\u00F3n, si no est\u00E1s empadronado/a, no te podremos verificar)\"},\"consultation_responses\":{\"not_verified\":\"El proceso en el que deseas participar exige que verifiques que est\u00E1s empadronado/a en %{site_name}. Confirma tus datos para continuar (ser\u00E1n verificados contra el padr\u00F3n, si no est\u00E1s empadronado/a, no te podremos verificar)\"},\"contributions\":{\"not_verified\":\"La contribuci\u00F3n en la que deseas participar exige que verifiques que est\u00E1s empadronado/a en %{site_name}. Confirma tus datos para continuar (ser\u00E1n verificados contra el padr\u00F3n, si no est\u00E1s empadronado/a, no te podremos verificar)\"},\"flags\":{\"not_verified\":\"La contribuci\u00F3n en la que deseas participar exige que verifiques que est\u00E1s empadronado/a en %{site_name}. Confirma tus datos para continuar (ser\u00E1n verificados contra el padr\u00F3n, si no est\u00E1s empadronado/a, no te podremos verificar)\"},\"not_verified\":\"El proceso en el que deseas participar exige que verifiques que est\u00E1s empadronado/a en %{site_name}. Confirma tus datos para continuar (ser\u00E1n verificados contra el padr\u00F3n, si no est\u00E1s empadronado/a, no te podremos verificar)\",\"poll_answers\":{\"not_verified\":\"El proceso en el que deseas participar exige que verifiques que est\u00E1s empadronado/a en %{site_name}. Confirma tus datos para continuar (ser\u00E1n verificados contra el padr\u00F3n, si no est\u00E1s empadronado/a, no te podremos verificar)\"},\"process_contributions\":{\"not_verified\":\"La contribuci\u00F3n en la que deseas participar exige que verifiques que est\u00E1s empadronado/a en %{site_name}. Confirma tus datos para continuar (ser\u00E1n verificados contra el padr\u00F3n, si no est\u00E1s empadronado/a, no te podremos verificar)\"},\"votes\":{\"not_verified\":\"La contribuci\u00F3n en la que deseas participar exige que verifiques que est\u00E1s empadronado/a en %{site_name}. Confirma tus datos para continuar (ser\u00E1n verificados contra el padr\u00F3n, si no est\u00E1s empadronado/a, no te podremos verificar)\"}},\"new\":{\"title\":\"Verifica tu identidad\"}},\"confirmations\":{\"create\":{\"error\":\"Los datos que has introducido no parecen ser correctos. Por favor, int\u00E9ntalo de nuevo.\",\"success\":\"Sesi\u00F3n iniciada correctamente\"},\"form\":{\"document_number_notice\":\"N\u00FAmero de documento\",\"gender\":{\"female\":\"Mujer\",\"male\":\"Hombre\"},\"hints\":{\"census_locked\":\"Esta informaci\u00F3n proviene del censo, por lo que no es editable.\",\"date_of_birth\":\"Esta informaci\u00F3n ser\u00E1 privada, y nunca se identificar\u00E1 con tu perfil. El dato ser\u00E1 anonimizado, y te lo pedimos para poder obtener informaci\u00F3n segmentada para entender mejor las opiniones y preferencias de los ciudadanos.\",\"email\":\"Tu direcci\u00F3n de correo-e ser\u00E1 privada en todo momento. Solo lo utilizaremos para enviarte comunicaciones.\",\"gender\":\"Esta informaci\u00F3n ser\u00E1 privada, y nunca se identificar\u00E1 con tu perfil. El dato ser\u00E1 anonimizado, y te lo pedimos para poder obtener informaci\u00F3n segmentada para entender mejor las opiniones y preferencias de los ciudadanos.\"},\"submit\":\"Guardar\",\"your_gender_is\":\"Eres...\"},\"new\":{\"error\":\"La URL no parece ser correcta\",\"title\":\"Ya casi estamos: completa los siguientes datos para poder personalizar tus alertas y participar en el site. Podr\u00E1s completar tu perfil m\u00E1s adelante.\"}},\"custom_sessions\":{\"create\":{\"invalid_data\":\"Los datos recibidos no son v\u00E1lidos, no se ha podido crear la sesi\u00F3n\",\"not_confirmed\":\"Revisa tu correo-e y haz click en el enlace de confirmaci\u00F3n para poder acceder al servicio\",\"success\":\"Sesi\u00F3n iniciada correctamente\"},\"destroy\":{\"success\":\"Sesi\u00F3n terminada correctamente\"},\"null_strategy\":{\"edit_form\":{\"edit\":\"A\u00F1ada alg\u00FAn campo a este formulario\",\"session_title\":\"Por favor, rellene los campos que faltan (Null strategy)\",\"submit\":\"Enviar\"},\"new_form\":{\"session_title\":\"Iniciar sesi\u00F3n (Null strategy)\",\"submit\":\"Enviar\"}}},\"layouts\":{\"menu_subsections\":{\"admin\":\"Ajustes\",\"alerts\":\"Alertas\",\"notifications\":\"Notificaciones\"}},\"notification_mailer\":{\"notification_digest\":{\"bye\":\"Saludos\",\"hi\":\"Hola\",\"manage_notifications\":\"Recuerda que puedes administrar tus notificaciones en %{url}\",\"manage_notifications_html\":\"Recuerda que puedes administrar tus notificaciones en \\\\u003ca href=\\'%{url}\\'\\\\u003etu p\u00E1gina de preferencias\\\\u003c/a\\\\u003e\",\"new_activity\":\"Hay nueva actividad en %{site_name}\",\"subject\":\"Resumen de actividad en %{site_name}\"},\"single_notification\":{\"bye\":\"Saludos\",\"hi\":\"Hola\",\"manage_notifications\":\"Recuerda que puedes administrar tus notificaciones en %{url}\",\"manage_notifications_html\":\"Recuerda que puedes administrar tus notificaciones en \\\\u003ca href=\\'%{url}\\'\\\\u003etu p\u00E1gina de preferencias\\\\u003c/a\\\\u003e\",\"new_activity\":\"Hay una nueva actividad en %{site_name}\",\"subject\":\"Nueva actividad en %{site_name}: %{action_name}\"}},\"notifications\":{\"index\":{\"no_new_notifications\":\"No hay notificaciones nuevas\",\"title\":\"Actividad reciente\"}},\"passwords\":{\"create\":{\"error\":\"La direcci\u00F3n de email que has indicado no parece ser v\u00E1lida\",\"success\":\"Por favor, comprueba tu email para recibir las instrucciones\"},\"edit\":{\"error\":\"Esta URL no parece ser v\u00E1lida\",\"title\":\"Establece tu nueva contrase\u00F1a:\"},\"edit_form\":{\"submit\":\"Cambiar\"},\"update\":{\"error\":\"Ha habido un problema al cambiar tu contrase\u00F1a\",\"success\":\"Sesi\u00F3n iniciada correctamente\"}},\"registrations\":{\"create\":{\"email_taken\":\"El email ya est\u00E1 en uso. Prueba a hacer login o a recuperar la contrase\u00F1a\",\"error\":\"Los datos que has introducido no parecen ser v\u00E1lidos. Por favor, int\u00E9ntalo de nuevo.\",\"success\":\"Genial. Revisa tu correo-e y haz click en el enlace de confirmaci\u00F3n para poder continuar con el proceso de registro.\"}},\"sessions\":{\"create\":{\"error\":\"Los datos que has introducido no parecen ser v\u00E1lidos. Por favor, int\u00E9ntalo de nuevo.\",\"success\":\"Sesi\u00F3n iniciada correctamente\"},\"destroy\":{\"success\":\"Sesi\u00F3n terminada correctamente\"},\"new\":{\"password_title\":\"\u00BFNo recuerdas tu contrase\u00F1a? Te ayudamos:\",\"registration_title\":\"\u00BFNuevo por aqu\u00ED? Create una cuenta:\",\"session_title\":\"\u00BFYa tienes cuenta? Haz login\"},\"new_password_form\":{\"session_section\":\"\u00BFTe acuerdas de la contrase\u00F1a? Haz login\",\"submit\":\"Recuperar\"},\"registration_form\":{\"submit\":\"Vamos\"},\"session_form\":{\"password_section\":\"\u00BFContrase\u00F1a?\",\"submit\":\"Conectarse\"},\"user_already_authenticated\":\"Ya est\u00E1s autenticado.\",\"user_not_authorized\":\"No est\u00E1s autorizado.\",\"user_not_signed_in\":\"Reg\u00EDstrate o haz login si ya tienes cuenta para poder continuar.\"},\"settings\":{\"form\":{\"gender\":{\"female\":\"Mujer\",\"male\":\"Hombre\"},\"hints\":{\"census_locked\":\"Esta informaci\u00F3n proviene del censo, por lo que no es editable.\",\"date_of_birth\":\"Esta informaci\u00F3n ser\u00E1 privada, y nunca se identificar\u00E1 con tu perfil. El dato ser\u00E1 anonimizado, y te lo pedimos para poder obtener informaci\u00F3n segmentada para entender mejor las opiniones y preferencias de los ciudadanos.\",\"email\":\"Tu direcci\u00F3n de correo-e ser\u00E1 privada en todo momento. Solo lo utilizaremos para enviarte comunicaciones.\",\"gender\":\"Esta informaci\u00F3n ser\u00E1 privada, y nunca se identificar\u00E1 con tu perfil. El dato ser\u00E1 anonimizado, y te lo pedimos para poder obtener informaci\u00F3n segmentada para entender mejor las opiniones y preferencias de los ciudadanos.\"},\"submit\":\"Guardar\",\"your_gender_is\":\"Eres...\"},\"show\":{\"title\":\"Tu cuenta\"},\"update\":{\"error\":\"Ha habido un error al guardar tus ajustes\",\"success\":\"Ajustes guardados con \u00E9xito\"}},\"subscription_preferences\":{\"update\":{\"error\":\"Ha habido un problema al guardar los datos: %{details}\",\"update_success\":\"Se han actualizado las preferencias correctamente\"}},\"subscriptions\":{\"create\":{\"create_success\":\"Se ha realizado la suscripci\u00F3n\",\"delete_success\":\"Se ha cancelado esta suscripci\u00F3n\",\"error\":\"Ha ocurrido un problema al suscribirte: %{details}. Si ya est\u00E1s registrado, identif\u00EDcate \\\\u003ca href=\\\\\"%{sign_in_path}\\\\\"\\\\u003eaqu\u00ED\\\\u003c/a\\\\u003e.\"},\"destroy\":{\"success\":\"Se ha cancelado esta suscripci\u00F3n\"},\"index\":{\"areas\":\"\u00C1reas\",\"frequency\":\"Cada cu\u00E1nto\",\"modules\":{\"gobierto_budgets\":\"Presupuestos\",\"gobierto_observatory\":\"Observatorio\",\"gobierto_people\":\"Personas\"},\"notification_frequency\":{\"daily\":\"Resumen diario\",\"disabled\":\"Deshabilitadas\",\"hourly\":\"Resumen cada hora\",\"immediate\":\"Inmediatas\",\"submit\":\"Guardar\",\"weekly\":\"Resumen semanal\"},\"people\":\"Personas\",\"submit\":\"Guardar\",\"title\":\"Tus alertas\",\"whole_site\":\"Todo el site\"},\"subscribable_box\":{\"cancel\":\"Ya est\u00E1s suscrito. \u00BFCancelar?\",\"form\":{\"placeholders\":{\"user_email\":\"Tu correo-e\"},\"submit\":\"Suscribirme\"},\"subscribe\":\"Suscribirme\"},\"subscribable_button\":{\"event_followed\":\"\u00A1Evento seguido!\",\"follow_event\":\"Seguir evento\",\"follow_group_process\":\"Seguir grupo\",\"follow_issue\":\"Seguir tema\",\"follow_person\":\"Seguir persona\",\"follow_process\":\"Seguir proceso\",\"follow_scope\":\"Seguir \u00E1mbito\",\"group_process_followed\":\"\u00A1Grupo seguido!\",\"issue_followed\":\"\u00A1Tema seguido!\",\"manage_subscriptions\":\"Gestionar tus alertas\",\"person_followed\":\"\u00A1Persona seguida!\",\"process_followed\":\"\u00A1Proceso seguido!\",\"scope_followed\":\"\u00A1\u00C1mbito seguido!\"}},\"user_mailer\":{\"confirmation_instructions\":{\"bye\":\"Saludos\",\"click_link\":\"Para confirmar tu registro haz click en el siguiente enlace:\",\"hi\":\"Hola\",\"ignore_link\":\"si no te estabas suscribiendo en %{site_name}, puedes ignorar este mensaje\",\"subject\":\"Completa tu registro en %{site_name}\"},\"reset_password_instructions\":{\"bye\":\"Saludos\",\"click_link\":\"Has solicitado restaurar tu contrase\u00F1a. Pulsa en el siguiente enlace y sigue las instrucciones:\",\"hi\":\"Hola\",\"subject\":\"Restaura tu contrase\u00F1a\"},\"welcome\":{\"alerts\":\"Puedes gestionar tus alertas desde tu cuenta: %{subscriptions_url}\",\"bye\":\"Saludos\",\"hi\":\"Hola\",\"subject\":\"Bienvenido\",\"success\":\"Tu registro se ha completado con \u00E9xito. Ahora puedes interactuar en %{site_url} como usuario registrado.\"}}},\"users\":{\"events\":{\"users_user_updated\":\"Usuario actualizado\"}},\"views\":{\"delete\":\"Eliminar\",\"delete_confirm\":\"\u00BFSeguro? Esta operaci\u00F3n no tiene marcha atr\u00E1s.\",\"edit\":\"Edita\",\"forms\":{\"max_characters\":\"M\u00E1x. %{length} caracteres\",\"required\":\"Obligatorio\",\"required_and_max_characters\":\"Obligatorio y m\u00E1x. %{length} caracteres\"},\"of\":\"de\",\"pagination\":{\"next\":\"Siguiente\",\"previous\":\"Anterior\",\"truncate\":\"\\\\u0026hellip;\"},\"see\":{\"less\":\"ver menos\",\"more\":\"ver m\u00E1s\"}}}'));\n", "import '../../assets/stylesheets/cms.scss'\n"],
  "mappings": "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,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAE,GAAG,EAAE,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,EAAE,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,EAAE,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,EAAE,CAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,EAAE,CAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,EAAE,EAAE,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,CAAE,GAAG,CAAE,EAAE,CAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,CAAE,GAAG,CAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,EAAE,CAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAE,GAAG,CAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG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",
  "names": ["global", "window", "array", "isFunction", "isWindow", "document", "jQuery", "arr", "type", "support", "hasOwn", "push", "slice", "indexOf", "i", "rtrim", "rhtml", "rquickExpr", "Sizzle", "keys", "matches", "docElem", "id", "node", "nodeName", "start", "dir", "filter", "find", "isXML", "elem", "self", "init", "root", "value", "deferred", "process", "data", "selection", "one", "expectSync", "remove", "name", "index", "length", "empty", "timer", "timeout", "j", "max", "location", "val", "completed", "method", "root", "global", "I18n", "type", "locale", "format", "Rails", "$", "type", "root", "undefined", "defaults", "format", "VERSION", "defaults", "Datepicker", "d", "format", "type", "min", "max", "type", "max", "dp", "type", "window", "global", "document", "_typeof", "obj", "_setPrototypeOf", "o", "p", "self", "_getPrototypeOf", "F", "__create", "__defProp", "__getProtoOf", "__hasOwnProp", "__getOwnPropNames", "__getOwnPropDesc", "__markAsModule", "__commonJS", "module", "__export", "__exportStar", "_loop", "get", "err", "__toModule", "exports", "i", "hex", "create", "process2", "abs", "max", "keys", "assign", "test", "set", "on", "type", "once", "once2", "off", "emit", "naiveFallback", "global2", "id", "resolveArgs", "memoized", "extDel", "callable", "byObserver", "onSuccess", "onFailure", "nextTickFailure", "del", "timeout", "noop4", "min", "hit", "_isArray", "defineProp", "array", "start", "min2", "Float32Array", "defineProperty", "AbstractVirtualNode", "DqElement", "aggregate", "aggregateChecks", "aggregateNodeResults", "aggregateResult", "areStylesSet", "assert", "checkHelper", "clone", "clone_default", "closest", "collectResultsFromFrames", "contains", "deepMerge", "escapeSelector", "extendMetaData", "filterHtmlAttrs", "finalizeRuleResult", "findBy", "getAllChecks", "getBaseLang", "getCheckMessage", "getCheckOption", "getFlattenedTree", "getFriendlyUriEnd", "getNodeAttributes", "getNodeFromTree", "getRootNode", "getRule", "getScroll", "getScrollState", "getShadowSelector", "getStyleSheetFactory", "getXpath", "injectStyle", "isHidden", "isHtmlElement", "isNodeInContext", "isShadowRoot", "isValidLang", "isXHTML", "matches", "matchesSelector", "mergeResults", "nodeSorter", "parseCrossOriginStylesheet", "parseSameOriginStylesheet", "parseStylesheet", "performanceTimer", "preload", "preloadCssom", "preloadMedia", "processMessage", "publishMetaData", "querySelectorAll", "querySelectorAllFilter", "queue", "ruleShouldRun", "select", "select_default", "sendCommandToFrame", "setScrollState", "toArray", "tokenList", "uniqueArray", "uuid", "validInputTypes", "_rng", "handler", "impacts", "xhtml", "_loop2", "frame", "data", "data2", "noop", "defaultFail", "defer", "fn", "findElmsInContext", "findUp", "findUpVirtual", "getComposedParent", "getElementByReference", "getElementCoordinates", "getElementStack", "getScrollOffset", "getTabbableElements", "getTextElementStack", "getViewportSize", "hasContent", "hasContentVirtual", "idrefs", "insertedIntoFocusOrder", "isFocusable", "isHTML5", "isHiddenWithCSS", "isInTextBlock", "isModalOpen", "isNativelyFocusable", "isNode", "isOffscreen", "isOpaque", "isSkipLink", "isVisible", "isVisualContent", "reduceToElementsBelowFloating", "shadowElementsFromPoint", "urlPropsFromAttribute", "visuallyContains", "visuallyOverlaps", "root", "transform", "filter", "rect", "_loop3", "_i6", "Color", "VirtualNode", "sum", "navigator", "location", "now", "reset", "value", "isCallable", "toInteger", "toLength", "SerialVirtualNode", "allowedAttr", "arialabelText", "arialabelledbyText", "getAccessibleRefs", "getElementUnallowedRoles", "getExplicitRole", "getOwnedVirtual", "getRole", "getRoleType", "getRolesByType", "getRolesWithNameFromContents", "implicitNodes", "implicitRole", "isAccessibleRef", "isAriaRoleAllowedOnElement", "isUnsupportedRole", "isValidRole", "label", "labelVirtual", "lookupTable", "namedFromContents", "requiredAttr", "requiredContext", "requiredOwned", "validateAttr", "validateAttrValue", "children", "accessibleText", "accessibleTextVirtual", "formControlValue", "hasUnicode", "isHumanInterpretable", "isIconLigature", "isValidAutocomplete", "labelText", "nativeElementType", "nativeTextAlternative", "nativeTextMethods", "removeUnicode", "sanitize", "subtreeText", "titleText", "unsupported", "visible", "visibleTextNodes", "visibleVirtual", "diff", "isNull", "isNotNull", "condition", "getAriaRolesByType", "getAriaRolesSupportingNameFromContent", "getElementSpec", "getElementsByContentType", "getGlobalAriaAttrs", "implicitHtmlRoles", "_loop4", "_i15", "getAllCells", "getCellPosition", "getHeaders", "getScope", "isColumnHeader", "isDataCell", "isDataTable", "isHeader", "isRowHeader", "toGrid", "traverse", "vNode", "centerPointOfRect", "elementHasImage", "elementIsDistinct", "filteredRectStack", "flattenColors", "getBackgroundColor", "getBackgroundStack", "getContrast", "getForegroundColor", "getOwnBackgroundColor", "getRectStack", "getTextShadowColors", "hasValidContrastRatio", "incompleteData", "index", "_loop5", "_i20", "_loop6", "color", "standards", "utils", "isAriaCombobox", "isAriaListbox", "isAriaRange", "isAriaTextbox", "isDisabled", "isNativeSelect", "isNativeTextbox", "commons", "_loop7", "degrees", "findMatch", "xhtml2", "timer", "mergeCheckLocale", "mergeRuleLocale", "mergeFailureMessage", "mergeFallbackMessage", "Audit", "defaultLocale", "normalizeOptions", "plugin", "noop2", "noop3", "respond", "results", "err2", "naReporter", "noPassesReporter", "rawReporter", "rawEnvReporter", "v1Reporter", "addFailureSummaries", "v2Reporter", "url", "options", "Promise", "resolve", "reject", "request", "XMLHttpRequest", "keys", "all", "headers", "response", "ok", "status", "statusText", "responseURL", "text", "responseText", "json", "then", "JSON", "parse", "blob", "Blob", "clone", "entries", "get", "n", "toLowerCase", "has", "i", "open", "method", "onload", "getAllResponseHeaders", "replace", "m", "key", "value", "push", "onerror", "withCredentials", "credentials", "setRequestHeader", "send", "body", "window", "$", "type", "i", "keys", "id", "elem", "offsetParent", "global", "document", "undefined", "performance", "array", "start", "$2", "hex", "element", "property", "opts", "callIndex", "delayComplete", "valueData", "endValue", "easing", "startValue", "tweenDelta", "$", "type", "item", "module", "image", "transition", "global", "window", "document", "undefined", "$", "component", "effectName", "i", "element", "injectFinalCallbacks", "root", "module", "exports", "component", "compose", "utils", "i", "type", "array", "timeout", "key", "defaults", "t", "e", "r", "n", "o", "i", "$", "I18n", "import_jquery", "$", "_Autocomplete", "self", "filter", "groupBy", "children", "$2", "jQuery", "noop", "type", "document", "datum", "selection", "create", "create", "parseTypenames", "type", "window", "dispatch_default", "dispatch_default", "format", "min", "max", "constant_default", "constant_default", "color", "rgb", "start", "i", "translate", "now", "id", "get", "set", "self", "start", "empty", "interrupt_default", "id", "set", "get", "transition", "attrRemove", "attrRemoveNS", "attrConstant", "attrConstantNS", "attrFunction", "attrFunctionNS", "attr_default", "id", "get", "id", "set", "get", "id", "set", "get", "id", "set", "filter_default", "merge_default", "transition", "id", "set", "on_default", "get", "id", "remove_default", "select_default", "id", "get", "selectAll_default", "id", "children", "inherit", "get", "Selection", "selection_default", "styleRemove", "styleConstant", "styleFunction", "id", "remove", "set", "style_default", "textConstant", "textFunction", "text_default", "inherit", "get", "id", "set", "id", "select_default", "selectAll_default", "filter_default", "merge_default", "selection_default", "on_default", "attr_default", "style_default", "text_default", "remove_default", "id", "transition_default", "interrupt_default", "transition_default", "xhtml", "namespaces_default", "namespace_default", "namespaces_default", "creatorInherit", "document", "xhtml", "creatorFixed", "creator_default", "namespace_default", "none", "selector_default", "select_default", "selector_default", "Selection", "empty", "selectorAll_default", "arrayAll", "selectAll_default", "selectorAll_default", "Selection", "matcher_default", "childMatcher", "find", "childFind", "childFirst", "selectChild_default", "childMatcher", "filter", "children", "childrenFilter", "selectChildren_default", "childMatcher", "filter_default", "matcher_default", "Selection", "sparse_default", "enter_default", "Selection", "sparse_default", "EnterNode", "datum", "constant_default", "bindIndex", "EnterNode", "bindKey", "datum", "data_default", "constant_default", "Selection", "exit_default", "Selection", "sparse_default", "join_default", "merge_default", "selection", "Selection", "order_default", "sort_default", "ascending", "Selection", "call_default", "nodes_default", "node_default", "size_default", "empty_default", "each_default", "attrRemove", "attrRemoveNS", "attrConstant", "attrConstantNS", "attrFunction", "attrFunctionNS", "attr_default", "namespace_default", "window_default", "styleRemove", "styleConstant", "styleFunction", "style_default", "styleValue", "window_default", "propertyRemove", "propertyConstant", "propertyFunction", "property_default", "classArray", "classList", "ClassList", "classedAdd", "classedRemove", "classedTrue", "classedFalse", "classedFunction", "classed_default", "textRemove", "textConstant", "textFunction", "text_default", "htmlRemove", "htmlConstant", "htmlFunction", "html_default", "raise", "raise_default", "lower", "lower_default", "append_default", "create", "creator_default", "constantNull", "insert_default", "create", "creator_default", "selector_default", "remove", "remove_default", "selection_cloneShallow", "selection_cloneDeep", "clone_default", "datum_default", "contextListener", "parseTypenames", "onRemove", "onAdd", "on_default", "dispatchEvent", "type", "window", "window_default", "dispatchConstant", "dispatchFunction", "dispatch_default", "iterator_default", "root", "Selection", "selection", "selection_selection", "select_default", "selectAll_default", "selectChild_default", "selectChildren_default", "filter_default", "data_default", "enter_default", "exit_default", "join_default", "merge_default", "order_default", "sort_default", "call_default", "nodes_default", "node_default", "size_default", "empty_default", "each_default", "attr_default", "style_default", "property_default", "classed_default", "text_default", "html_default", "raise_default", "lower_default", "append_default", "insert_default", "remove_default", "clone_default", "datum_default", "on_default", "dispatch_default", "iterator_default", "selection_default", "noop", "dispatch", "Dispatch", "parseTypenames", "get", "set", "type", "dispatch_default", "frame", "timeout", "interval", "pokeDelay", "taskHead", "taskTail", "clockLast", "clockNow", "clockSkew", "clock", "setFrame", "now", "clearNow", "Timer", "timer", "sleep", "timerFlush", "wake", "nap", "poke", "timeout_default", "Timer", "emptyOn", "dispatch_default", "emptyTween", "CREATED", "SCHEDULED", "STARTING", "STARTED", "RUNNING", "ENDING", "ENDED", "schedule_default", "id", "create", "init", "get", "set", "self", "timer", "start", "timeout_default", "interrupt_default", "empty", "STARTING", "ENDING", "ENDED", "interrupt_default", "define_default", "extend", "Color", "darker", "brighter", "reI", "reN", "reP", "reHex", "reRgbInteger", "reRgbPercent", "reRgbaInteger", "reRgbaPercent", "reHslPercent", "reHslaPercent", "named", "define_default", "color", "color_formatHex", "color_formatHsl", "color_formatRgb", "hslConvert", "format", "rgbn", "Rgb", "rgba", "hsla", "rgbConvert", "rgb", "extend", "rgb_formatHex", "rgb_formatRgb", "hex", "Hsl", "min", "max", "hsl", "hsl2rgb", "basis", "basis_default", "basisClosed_default", "basis", "constant_default", "linear", "exponential", "gamma", "nogamma", "exponential", "constant_default", "linear", "rgb_default", "rgbGamma", "color", "gamma", "rgb", "start", "nogamma", "rgbSpline", "rgbBasis", "basis_default", "rgbBasisClosed", "basisClosed_default", "number_default", "reA", "reB", "zero", "one", "string_default", "number_default", "i", "degrees", "identity", "decompose_default", "svgNode", "parseCss", "identity", "decompose_default", "parseSvg", "interpolateTransform", "translate", "number_default", "interpolateTransformCss", "parseCss", "interpolateTransformSvg", "parseSvg", "tweenRemove", "id", "set", "tweenFunction", "tween_default", "get", "tweenValue", "transition", "interpolate_default", "number_default", "color", "rgb_default", "string_default", "attrRemove", "attrRemoveNS", "attrConstant", "attrConstantNS", "attrFunction", "attrFunctionNS", "attr_default", "namespace_default", "interpolateTransformSvg", "interpolate_default", "tweenValue", "attrInterpolate", "attrInterpolateNS", "attrTweenNS", "attrTween", "attrTween_default", "namespace_default", "delayFunction", "id", "init", "delayConstant", "delay_default", "get", "durationFunction", "id", "set", "durationConstant", "duration_default", "get", "easeConstant", "id", "set", "ease_default", "get", "easeVarying", "id", "set", "easeVarying_default", "filter_default", "matcher_default", "Transition", "merge_default", "transition", "Transition", "start", "onFunction", "id", "init", "set", "on_default", "get", "removeFunction", "id", "remove_default", "select_default", "id", "selector_default", "schedule_default", "get", "Transition", "selectAll_default", "id", "selectorAll_default", "children", "inherit", "get", "schedule_default", "Transition", "Selection", "selection_default", "styleNull", "styleValue", "styleRemove", "styleConstant", "styleFunction", "styleMaybeRemove", "id", "remove", "set", "style_default", "interpolateTransformCss", "interpolate_default", "tweenValue", "styleInterpolate", "styleTween", "styleTween_default", "textConstant", "textFunction", "text_default", "tweenValue", "textInterpolate", "textTween", "textTween_default", "transition_default", "newId", "inherit", "get", "schedule_default", "Transition", "end_default", "id", "set", "id", "Transition", "transition", "selection_default", "newId", "selection_prototype", "select_default", "selectAll_default", "filter_default", "merge_default", "transition_default", "on_default", "attr_default", "attrTween_default", "style_default", "styleTween_default", "text_default", "textTween_default", "remove_default", "tween_default", "delay_default", "duration_default", "ease_default", "easeVarying_default", "end_default", "cubicInOut", "defaultTiming", "cubicInOut", "inherit", "id", "transition_default", "Transition", "newId", "now", "schedule_default", "selection_default", "interrupt_default", "transition_default", "location", "identity", "axeCore", "d", "b", "__assign", "__read", "__spreadArray", "_i", "__spreadArray", "__read", "Serializable", "Environment", "XDomainTransport", "XHRTransport", "FetchTransport", "NodeTransport", "PushApi", "Span", "Queue", "Dispatcher", "Appsignal", "plugin", "__assign", "self", "accounting", "import_velocity_animate", "$", "get", "tipsy", "keys", "import_velocity_animate", "Turbolinks", "Rails"]
}
